Mac で cmake を使用して 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})
Boost インクルード ディレクトリは、cmake プロセス中に「/opt/local/include/」で埋められます。このフォルダには、filesystem.hpp を含むフォルダ boost が含まれます。
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 ディレクトリを選択しない理由がわかりましたか?
さらに情報が必要な場合は、喜んで提供します