es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cmake compilación con bibliotecas externas.

Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.

Soy principiante en la construcción de ARM.
Quiero compilar este código para la plataforma ARMEL.
Tengo un código:


# include <boost container/flat_map.hpp=""> # include <boost container/flat_set.hpp=""> # include <nlohmann json.hpp=""> int main() { return 0; }

También tengo un archivo CMake:

CMake_minimum_required(VERSION 2.8.10 FATAL_ERROR)
project(test CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_COMPILER arm-linux-gnueabi-g++-10)

set(SRC_FILES test.cpp)

add_definitions(-DBOOST_ERROR_CODE_HEADER_ONLY)
add_definitions(-DBOOST_SYSTEM_NO_DEPRECATED)
add_definitions(-DBOOST_ALL_NO_LIB)
add_definitions(-DBOOST_NO_RTTI)
add_definitions(-DBOOST_NO_TYPEID)
add_definitions(-DBOOST_ASIO_DISABLE_THREADS)

add_executable(${PROJECT_NAME} ${SRC_FILES}) 

Instalé la biblioteca nlohmann en:
/usr/local/include/nlohmann/json.hpp

Después de generar make y make:
/home/test-machine/project-dir/test/test.cpp:3:10:error fatal: nlohmann/json.hpp: No existe tal archivo o directorio
3 | #include
| ^~~~~~~~~~~~~~~~~~~
compilación terminada.
make[2]: *** [CMakeFiles/test.dir/build.make:82: CMakeFiles/test.dir/test.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:95: CMakeFiles/test.dir/all] Error 2
make: *** [Makefile:103: all] Error 2

¿Por qué tengo este error? ¡¡¡Ayúdame, por favor!!!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El error está ocurriendo porque el compilador no puede encontrar el archivo de encabezado de la biblioteca nlohmann, que ha sido instalada en el directorio /usr/local/include/nlohmann/json.hpp.

    Para resolver este error, es necesario incluir la ruta al archivo de encabezado en el archivo CMakeLists.txt. Puedes hacer esto agregando las siguientes líneas a tu archivo CMakeLists.txt antes del comando add_executable():

    include_directories(/usr/local/include)
    

    Esto le indicará a CMake dónde buscar los archivos de encabezado.

    Después de realizar este cambio, regenera tus archivos make y compila nuevamente. El error debería estar resuelto ahora.

Comments are closed.