2

Windows 7。64 ビット。CMake 2.8.10。

手順:

  • ブーストのダウンロード: http://sourceforge.net/projects/boost/files/boost/1.51.0/
  • C:\work\lib\boost_1_51_0-MT に配置します
  • 「スタート->すべてのプログラム->Microsoft Visual Studio 2010->Visual Studio ツール->Visual Studio コマンド プロンプト (2010)」を開きます。
  • 指図:  
CD C:\work\lib\boost_1_51_0-MT
ブートストラップ.bat
bjam --toolset=msvc-10.0 --variant=release --build-type=complete -j 4 --with-regex --with-test --with-filesystem --with-date_time --with-random -- with-system --with-thread --with-program_options --with-chrono --with-math ステージ link=static threading=multi runtime-link=static
  • 指図:  
設定 BOOST_ROOT=C:\work\lib\boost_1_51_0-MT
cmake M:\プロジェクト

  要求された Boost ライブラリが見つかりません。

  ブースト バージョン: 1.51.0

  ブースト インクルード パス: C:/work/lib/boost_1_51_0-MT

  次の Boost ライブラリが見つかりませんでした:

          ブーストシステム
          ブーストスレッド
          ブースト_ランダム
          ブーストクロノ

  Boost ライブラリが見つかりませんでした。BOOST_LIBRARYDIR を
  Boostライブラリを含むディレクトリまたはBOOST_ROOTの場所へ
  ブースト。

M:\project\CMakeLists.txt には以下が含まれます: (boost を静的にリンクする必要があります)

...
set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS ON)
セット(USE_STATIC_BOOST ON)
add_definitions(-DBOOST_THREAD_USE_LIB)
add_definitions(-DBOOST_ALL_NO_LIB)

find_package (Boost 1.48.0 COMPONENTS システム スレッド ランダム クロノが必要)
...

この CMakeLists.txt は古く、他のブースト インストールで動作します (過去に私ではなく私が行ったものですが、レシーブは失われています)。

解決済み

セット (Boost_USE_STATIC_LIBS ON)

...CMake がブースト ライブラリを検出するようになりました。私の「set(USE_STATIC_BOOST ON)」は同じ効果があるはずですが、そうではありません...

4

1 に答える 1

4

解決しました

set(Boost_USE_STATIC_LIBS ON)

...今CMakeはブーストライブラリを見つけます!私のCMakeLists.txtにはset(USE_STATIC_BOOST ON)同じ効果があるはずですが、そうではありません...

使用set(Boost_USE_STATIC_LIBS OFF)するには、以下を追加する必要があります。

if( WIN32 )
  # Needed for boost to turn off autolinking for dynamic linking
  add_definitions( -DBOOST_ALL_NO_LIB )
endif()

詳細については 、WindowsでBoostライブラリをBoost_USE_STATIC_LIBOFFにリンクするを参照してください。

于 2012-11-05T18:52:20.447 に答える