descargar descarga course clean build makefile cmake build-process

build - course - descarga cmake



CMAKE_TOOLCHAIN_FILE no fue utilizado por el proyecto (4)

Cmake da esta advertencia cuando construye un script de terceros:

CMake Warning: Manually-specified variables were not used by the project: CMAKE_TOOLCHAIN_FILE

¿Hay algún consejo común sobre qué debo verificar o cómo solucionarlo?


En caso de que reciba este mensaje con CLion después de establecer la opción -DCMAKE_TOOLCHAIN_FILE=xxx , querrá eliminar todos los directorios de compilación de CMake.

Hacer

Tools-> CMake -> Show Generated CMake Files in File Manager

luego borre todos los directorios de compilación. Entonces hazlo

Tools-> CMake -> Reload the CMake Project

Una vez que haga esto, seguirá recibiendo la advertencia, pero al menos se observará la primera vez que se ejecute cmake.


Esta es la advertencia estándar que se le da cuando le da una opción de línea de comando que no está usando. Eso está dando -DFOO=bar a cmake cuando el CMakeLists.txt no usa la variable FOO.

Ahora, ese es un caso especial: CMAKE_TOOLCHAIN_FILE es utilizado por CMake la primera vez que configuras tu compilación, pero como no puedes cambiar la cadena de herramientas para una compilación ya configurada, se ignora en cualquier otro momento, por lo tanto, la advertencia .

Como dijo @Answeror, puedes ignorar la advertencia de forma segura, pero si realmente te molesta, puedes ocultarla dando --no-warn-unused-cli unused --no-warn-unused-cli to cmake.


Lo mismo sucedió aquí, como señaló @js, esto generalmente significa que tienes relictos creados de cmake desde una configuración anterior.

Haga un rm -rf CMakeCache.txt CMakeFiles/ y el mensaje desaparecerá la primera vez que haga el cmake -DCMAKE_TOOLCHAIN_FILE=foo.cmake . . La segunda vez, estarán allí de nuevo y como @Guilaume respondió que está bien.

PD: Primero hice un git clean --force pero dado que esos archivos usualmente están en .gitignore , eso no restablece la compilación.


Los motivos de esta variable específica no utilizada ya se explicaron en la respuesta de @ Guillaume. Una forma simple y útil de eludir la advertencia sobre la variable no utilizada es usarla en un mensaje de estado.

message(STATUS "Using toolchain file: ${CMAKE_TOOLCHAIN_FILE}.")