我正在 Mac 上使用 cmake 构建我的 c++ 程序。编译器给了我以下错误:
error: boost/filesystem.hpp: No such file or directory
触发错误的行如下:
#include "boost/filesystem.hpp"
或者
#include <boost/filesystem.hpp>
我使用以上哪一项不会改变错误
但是在我的 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 包含目录在 cmake 过程中填充有“/opt/local/include/”,并且此文件夹包含一个文件夹 boost,其中包含 filesystem.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:错误:boost/filesystem.hpp:没有这样的文件或目录 make[2]: *** [src/CMakeFiles/ImageMarker.dir/FaceRecognizer.cpp.o] 错误 1
你明白为什么编译器没有选择 /opt/local/include 目录吗?
如果您需要更多信息,我很乐意提供