Я создаю свою программу на С++ с помощью cmake на Mac. Компилятор дает мне следующую ошибку:
error: boost/filesystem.hpp: No such file or directory
Линия, вызывающая ошибку, следующая:
#include "boost/filesystem.hpp"
или
#include <boost/filesystem.hpp>
Какое из приведенных выше я не изменил Error
Но в моем CMakeLists.txt я включаю заголовки boost следующим образом:
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 include dirs заполняется "/opt/local/include/" во время процесса cmake, и эта папка содержит расширение папки, которое содержит файловую систему .hpp
Boost предоставляет следующие сообщения при создании Makefile, я только скопировал часть boost:
-- 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
При запуске make VERBOSE = 1 Эта строка содержит ошибку:
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
Вы понимаете, почему компилятор не выбирает каталог /opt/local/include?
Если вам нужна дополнительная информация, я рад предоставить ее