Estoy creando mi programa C++ con cmake en una Mac. El compilador me da error siguiente:¿Por qué este archivo de encabezado boost no está incluido?
error: boost/filesystem.hpp: No such file or directory
La línea que desencadena el error es el siguiente:
#include "boost/filesystem.hpp"
o
#include <boost/filesystem.hpp>
¿Cuál de lo anterior que utilizo no cambió el Error
Pero en mi CMakeLists.txt incluyo los encabezados de impulso de la siguiente manera:
FIND_PACKAGE(Boost)
MESSAGE("Boost information:")
MESSAGE(" Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}")
MESSAGE(" Boost_LIBRARIES: ${Boost_LIBRARIES}")
MESSAGE(" Boost_LIBRARY_DIRS: ${Boost_LIBRARY_DIRS}")
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
Boost incluye directorios está lleno de "/ opt/local/include /" durante el proceso de cmake y esta carpeta contiene un impulso carpeta que contiene el filesystem.hpp
Boost da los siguientes mensajes al tiempo que genera el Makefile, sólo copié la parte impulso:
-- Boost version: 1.38.0
-- Found the following Boost libraries:
Boost information:
Boost_INCLUDE_DIRS: /opt/local/include
Boost_LIBRARIES:
Boost_LIBRARY_DIRS: /opt/local/lib
-- Configuring done
mientras están corriendo VERBOSE = 1 Esta línea contiene el error:
cd /Users/janusz/Documents/workspace/ImageMarker/Debug/src && /usr/bin/c++ -O3 -Wall -Wno-deprecated -g -verbose -I/Users/janusz/Documents/workspace/ImageMarker/src/. -o CMakeFiles/ImageMarker.dir/FaceRecognizer.cpp.o -c /Users/janusz/Documents/workspace/ImageMarker/src/FaceRecognizer.cpp /Users/janusz/Documents/workspace/ImageMarker/src/FaceRecognizer.cpp:8:32: error: boost/filesystem.hpp: No such file or directory make[2]: *** [src/CMakeFiles/ImageMarker.dir/FaceRecognizer.cpp.o] Error 1
¿Entiende por qué el compilador no está eligiendo el directorio/opt/local/include?
Si necesita más información Estoy feliz de proporcionarla
Esto se ve bien, ¿qué dice "ls /opt/local/include/boost/filesystem.hpp"? –
asegúrese de que include_directories ($ {Boost_INCLUDE_DIRS}) esté en la lista _antes de que se alcancen las sentencias add_executable o add_library. –
Gracias ... eso parece ayudar ahora obtengo un error de impulso en tiempo de compilación. Agregué el subdirectorio con la instrucción ejecutable antes de incluir, sin saber que cmake en ese momento aplicará todo en ese subdirectorio. Eso resuelto este problema al menos – Janusz