2017-01-03 10 views
1

現在Boostに問題があります。CMakeが見つかりましたが、Makeファイルがインクルードファイルを見つけられません

-- Boost version: 1.61.0 
-- Found the following Boost libraries: 
-- filesystem 
-- program_options 
-- iostreams 
-- timer 
-- system 
-- regex 

しかし、生成されたMakefileからmake段階:

Timer.h(26): catastrophic error: cannot open source file "boost/timer/timer.hpp" 
    #include <boost/timer/timer.hpp> 
[..]        ^

Function.h(29): catastrophic error: cannot open source file "boost/ptr_container/ptr_map.hpp" 
    #include <boost/ptr_container/ptr_map.hpp> 
[..] 

Makefileboostのための任意のヘッダを見つけたように基本的に、それはいないようですcmakeの段階では、そのブーストが発見された明記しました。私も行って、Boost_INCLUDEDIRBoost_LIBRARYDIR - 大文字と小文字を区別して宣言します。それが役立つように見えません。

考えられる原因は何ですか?コンパイラ、つまりgcc/icccmakeジェネレータの間にコンフリクトがありますか? (ピュア推測 - 私はこの領域では得意ではないのです...)

EDIT:このCMakeLists.txtファイルにboostを発見するプロセスです:http://pastebin.com/7m3yAYk5FindBOOST.cmakeはここにある:https://github.com/Kitware/CMake/blob/master/Modules/FindBoost.cmake

+1

質問を編集してBoostを探している 'CMakeLists.txt'の内容を追加してください。どのように検索し、Boostを使用しているのかわからなくても、あなたの質問に答えることはできません – wasthishelpful

+4

この 'include_directories(SYSTEM $ {Boost_INCLUDE_DIR})' – Danh

答えて

4

ライブラリを検索しますこれには2つの異なることが含まれます。

を見つけるだけでなく、ブーストにする必要がありますが、そのヘッダーとそのライブラリへのリンクを含めます。シンプルなCMakeLists.txtの例:

FIND_PACKAGE(Boost 1.61 COMPONENTS filesystem program_options iostreams timer REQUIRED) 
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR}) 

ADD_EXECUTABLE(myProgram myMain.cpp) 

TARGET_LINK_LIBRARIES(myProgram ${Boost_LIBRARIES}) 

すでにこれを行っている場合は、その情報を含めるように質問を更新してください。

関連する問題