Yotta construye resultados en CMake Deprecation Advertencia, cmake-policies OLD comportamientos
Estoy tratando de construir el código que ya se hace como ejemplos para el Micro:bit utilizando la construcción de yotta recomendada pero después de cada paso estoy recibiendo este error:
yotta build
info: generate for target: bbc-microbit-classic-gcc 0.2.3 at /home/dragos/microbit-samples/yotta_targets/bbc-microbit-classic-gcc
CMake Deprecation Warning at CMakeLists.txt:16 (cmake_policy):
The OLD behavior for policy CMP0017 will be removed from a future version
of CMake.
The cmake-policies(7) manual explains that the OLD behaviors of all
policies are deprecated and that a policy should be set to OLD only under
specific short-term circumstances. Projects should be ported to the NEW
behavior and not rely on setting a policy to OLD.
CMake Deprecation Warning at /usr/share/cmake-3.16/Modules/CMakeForceCompiler.cmake:75 (message):
The CMAKE_FORCE_C_COMPILER macro is deprecated. Instead just set
CMAKE_C_COMPILER and allow CMake to identify the compiler.
Call Stack (most recent call first):
/home/dragos/microbit-samples/yotta_targets/mbed-gcc/CMake/toolchain.cmake:78 (cmake_force_c_compiler)
toolchain.cmake:8 (include)
CMakeFiles/3.16.3/CMakeSystem.cmake:6 (include)
CMakeLists.txt:76 (project)
CMake Deprecation Warning at /usr/share/cmake-3.16/Modules/CMakeForceCompiler.cmake:89 (message):
The CMAKE_FORCE_CXX_COMPILER macro is deprecated. Instead just set
CMAKE_CXX_COMPILER and allow CMake to identify the compiler.
Call Stack (most recent call first):
/home/dragos/microbit-samples/yotta_targets/mbed-gcc/CMake/toolchain.cmake:79 (cmake_force_cxx_compiler)
toolchain.cmake:8 (include)
CMakeFiles/3.16.3/CMakeSystem.cmake:6 (include)
CMakeLists.txt:76 (project)
Tengo que especificar que no he cambiado ningún código de la git inicial: lancaster-university / microbit-samples y he hecho la actualización de mi sistema varias veces. También lo estoy ejecutando en Ubuntu 20.04.1 LTS
Pregunta hecha hace 3 años, 5 meses, 0 días - Por codecrusader
2 Respuestas:
-
Esta advertencia en CMake está relacionada con las políticas de compatibilidad y el uso de macros obsoletos en el archivo de configuración del proyecto.
Para resolver este problema, puedes intentar lo siguiente:
- Actualiza la versión de CMake a una versión más reciente que sea compatible con las políticas de compatibilidad de CMake actuales.
- Revisa el archivo CMakeLists.txt en tu proyecto y busca el lugar donde se utilizan las macros obsoletas CMAKE_FORCE_C_COMPILER y CMAKE_FORCE_CXX_COMPILER. Reemplaza estas macros con las variables CMAKE_C_COMPILER y CMAKE_CXX_COMPILER respectivamente.
- Si estás utilizando un script de configuración adicional en tu proyecto que incluye las macros obsoletas, asegúrate de hacer los cambios necesarios para usar las variables correctas.
- Verifica si hay actualizaciones disponibles para las herramientas y bibliotecas que estás utilizando en tu proyecto, ya que a veces las versiones antiguas pueden causar conflictos con las nuevas versiones de CMake.
Siguiendo estos pasos, deberías poder resolver las advertencias de deprecación en tu proyecto y construirlo correctamente con Yotta.
Respondida el Dec 17, 2020 a las 14:31 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Solución:
Para resolver las advertencias de deprecación de CMake, debes actualizar el código CMake para que sea compatible con la nueva sintaxis. Los pasos para hacerlo son:
- Actualiza la política de CMake:
En
CMakeLists.txt
, reemplaza la línea:cmake cmake_policy(CMP0017 OLD)
con:
cmake cmake_policy(CMP0017 NEW)
- Elimina la configuración forzada del compilador:
En
toolchain.cmake
(dentro deyotta_targets/mbed-gcc
), elimina las siguientes líneas:cmake cmakeforceccompiler(arm-none-eabi-gcc) cmakeforcecxxcompiler(arm-none-eabi-g++)
- Especifica el compilador:
En
CMakeLists.txt
, asegúrate de que el compilador esté especificado correctamente:cmake set(CMAKECCOMPILER arm-none-eabi-gcc) set(CMAKECXXCOMPILER arm-none-eabi-g++)
- Vuelve a generar el proyecto CMake:
Elimina el directorio de compilación y vuelve a generar el proyecto CMake:
bash rm -rf build yotta build
Esto debería resolver las advertencias de deprecación y permitir que el proyecto se compile correctamente.
Respondida el Dec 17, 2020 a las 14:35 - por Gemini
Votos positivos: 0 | Votos negativos: 0