Watch at EaseHistorias. Respuestas. Perspectiva.

Tecnología · GUÍA PRÁCTICA

¿CMake dice que el generador no coincide? Pruebe el dueño del árbol antes de borrar la caché

Fije el par source/build que falla, lea el generador cacheado y la configuración del frontend, y valide configure, build nativo y pruebas en un árbol aislado.

Ilustración original: vincula source tree, build tree, generador cacheado y el dueño CLI, entorno, preset, kit o IDE.
Ilustración original: vincula source tree, build tree, generador cacheado y el dueño CLI, entorno, preset, kit o IDE. Watch at Ease

Un generator mismatch de CMake significa que un árbol de compilación existente recuerda un generador distinto del pedido actual. Es un conflicto de identidad del árbol, no una razón para renombrar o borrar CMakeLists.txt.

Conserve comando y caché, identifique si CLI, entorno, preset, kit o IDE eligió el nuevo generador, y use otro árbol o --fresh solo después de registrar las opciones que debe reproducir.

Fije el par source/build en conflicto

Guarde comando exacto, directorio, entorno, preset y log del IDE. Resuelva por separado source y build; no cambie CMakeLists.txt para reparar identidad cacheada.

Copie o calcule el hash de CMakeCache.txt y registre GENERATOR, PLATFORM, TOOLSET, HOME_DIRECTORY, compiladores y valores -D intencionales.

Nombre al dueño del generador

Compare -G explícito, CMAKE_GENERATOR, preset activo, kit, ajustes de CMake Tools, toolset y platform. Una sola autoridad debe poseer el configure previsto.

Si el árbol viejo viene de otra máquina, contenedor, checkout o versión de IDE, consérvelo como evidencia y no mezcle archivos nativos de generadores distintos.

Elija una frontera reversible

Prefiera un directorio nuevo con -S, -B y el generador previsto. Restaure solo opciones revisadas y mantenga el árbol anterior para comparar o volver atrás.

Use --fresh o borre CMakeCache.txt/CMakeFiles solo si un árbol nuevo no es práctico y ya guardó las opciones. --fresh requiere CMake 3.24 o posterior; nunca borre el source tree.

Pruebe configure, build y tests

Guarde el configure exitoso y confirme source, generator, platform, toolset y compiladores en la nueva caché. Luego use cmake --build para invocar la herramienta nativa correcta.

Ejecute pruebas e inspeccione binarios, bibliotecas, paquetes o compile database. Compare opciones críticas con la caché anterior; el exit de configure no basta.

Retire deliberadamente el árbol contaminado

Archive o elimine el árbol viejo solo después de aprobar el reemplazo. Alinee CI, presets e IDE con la misma frontera y autoridad de generador.

Configure otra vez sin cambiar entradas: debe conservar generador y evitar un rebuild total inexplicable. Guarde el registro de propiedad para el próximo cambio.

Ilustración original: conserva caché, configura un árbol aislado, valida build y tests y luego retira el árbol viejo.
Ilustración original: conserva caché, configura un árbol aislado, valida build y tests y luego retira el árbol viejo. Watch at Ease