4

Windows 7 の Clion IDE で CMake を使用してブースト ライブラリ/ヘッダーを含める方法の簡単な例が
必要です。C++ 11 に必要です。
ブースト ライブラリとヘッダーはカスタム ディレクトリにインストールされます。
コンパイラ用に cygwin x64 をインストールしました。

いくつかの解決策:
cygdrive形式のブーストヘッダーをインクルードしました

include_directories("/cygdrive/e/Libs/BoostLibs/include/boost-1_57")

しかし、Clion がどこからライブラリを取得するかはまだわかりません。

より良い解決策
は var を設定する必要があるBOOST_ROOT
ので、私はそうしました(そしてより多くの変数を使用しました):

set(BOOST_ROOT "/cygdrive/e/Libs/BoostLibs/include/boost-1_57")

その後、それを見つけて含めることができます

FIND_PACKAGE(Boost REQUIRED)
IF (Boost_FOUND)
    INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
    ADD_DEFINITIONS( "-DHAS_BOOST" )
ENDIF()
4

3 に答える 3

4

Boost フレームワーク v1.57.0 で JetBrains CLion EAP (ビルド 140.1740.3) を試しています。以下の行をファイル「CMakeLists.txt」に追加することで動作するようになりました(これはデフォルトで新しいCLionプロジェクトに付属しています)。

set(BOOST_ROOT "C:\boost_1_57_0")
set(BOOSTROOT "C:\boost_1_57_0")

find_package(Boost 1.57.0)

if(NOT Boost_FOUND)
    message(FATAL_ERROR "Could not find boost!")
endif()
于 2015-01-31T20:50:02.793 に答える
1

私の知る限り、CLion はライブラリを取得しません。CMakeはそうします。

いずれにせよ、これを使用して問題を解決できました:

set(Boost_Path "e:/Libs/BoostLibs/include")
set(Boost_INCLUDE_DIR "${Boost_Path}/boost_1_57_0")
find_package(Boost 1.57.0)

それを試してみて、それが機能するかどうかを確認するには、これを使用できます。

message("Boost_INCLUDE_DIR: " ${Boost_INCLUDE_DIR })

また

if(Boost_FOUND)
    message(STATUS "It works!")
    include_directories(${Boost_INCLUDE_DIRS})
endif()

最初のものでBoost_INCLUDE_DIRは正しく設定されているかどうかがわかりますが、2 番目のものでは、Boost ライブラリが見つかり、ディレクトリを含める場合にのみメッセージが表示されます。

問題が解決しない場合はお知らせください。

于 2015-01-24T00:07:04.303 に答える