我正在用cmake在Mac上構建我的C++程序。編譯器給了我以下錯誤:爲什麼不包括這個增強頭文件
error: boost/filesystem.hpp: No such file or directory
觸發錯誤線如下:
#include "boost/filesystem.hpp"
或
#include <boost/filesystem.hpp>
這上面我用的不改錯誤
但是在我的CMakeLists.txt中,我使用以下方式包含提升標題:
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})
升壓include目錄中填充有「/選擇/本地/包含/」在cmake的過程和該文件夾中包含其中包含filesystem.hpp
升壓給出以下消息而生成的文件夾升壓Makefile中,我只複製了升壓部分:
-- 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
在運行使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目錄嗎?
如果您需要更多的信息,我很高興能提供其
這看起來不錯,「ls /opt/local/include/boost/filesystem.hpp」是什麼意思? – 2009-06-30 18:41:13
確保include_directories($ {Boost_INCLUDE_DIRS})在_before_任何add_executable或add_library語句到達時列出。 – 2009-06-30 18:47:53
謝謝......這似乎有助於我在編譯時遇到boost錯誤。我在include之前添加了帶有可執行語句的子目錄,不知道cmake會在那個時候應用該子目錄中的所有內容。這解決了至少這個問題 – Janusz 2009-06-30 19:10:51