0

なぜこのエラーが発生するのかわかりません。

CMake Error at C:/Program Files/CMake/share/cmake-3.6/Modules/FindBoost.cmake:1753 (message):
Unable to find the requested Boost libraries.

Boost version: 1.48.0

Boost include path: D:/Shark/boost_1_48_0

Could not find the following Boost libraries:

      boost_system
      boost_date_time
      boost_filesystem
      boost_program_options
      boost_serialization
      boost_thread
      boost_unit_test_framework

 No Boost libraries were found.  You may need to set BOOST_LIBRARYDIR to the
 directory containing Boost libraries or BOOST_ROOT to the location of
 Boost.
 Call Stack (most recent call first):
 CMakeLists.txt:146 (find_package)


 CMake Error at CMakeLists.txt:154 (message):
 Please make sure Boost 1.48.0 is installed on your system

「要求されたブースト ライブラリが見つかりません」と表示されます。しかし、boost 1.48.0 をインストールし、Visual Studio コンソールを使用してビルドしましBOOST_LIBRARYDIR=D:/Shark/boost_1_48_0/stage/libBOOST_ROOT=D:/Shark/boost_1_48_0

4

2 に答える 2

0

ソースファイルをダウンロードしてブーストライブラリを構築していました。問題は、.dll (.lib のみ) を作成していないことでした。

ブーストバイナリをダウンロードし、インストーラーからインストールしてそれらのファイルを取得し、パスを設定しBOOL_LIBRARYDIR=C:/local/boost/lib64-msvc-14.0BOOL_ROOT=C:/local/boost完了させました。

于 2016-12-14T04:21:30.137 に答える
0

CMake のFindBoostマクロは、使用しているコンパイラに基づいて、さまざまな場所でライブラリを探します。を指定した場合でも、マクロがファイル名に期待するBOOST_LIBRARYDIR標準に準拠する必要があります。FindBoost

${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}-${Boost_LIB_VERSION}
${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}
${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}-${Boost_LIB_VERSION}
${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}
${Boost_LIB_PREFIX}boost_${COMPONENT} )

Visual Studio 2013 (別名 msvc 12) のこのテンプレートに一致するファイル名の例

$BOOST_LIBRARY_DIR/boost_atomic-vc120-mt-1_58.dll
$BOOST_LIBRARY_DIR/boost_atomic-vc120-mt-gd-1_58.dll

mtマルチスレッド ビルド用で、gdはデバッグ ビルドであることを示しています。FindBoost は面倒で、CMake プロジェクトに CMAKE_BUILD_TYPE=Debug がある場合、デバッグ ビルドを探します。

さらに、ビルドがマルチスレッドの場合は、次を定義する必要があります。

Boost_USE_MULTITHREADED=ON

それでも問題が解決しない場合は、次を定義するBoost_DEBUG=1 と、FindBoost が検索する方法と場所に関する多くの追加出力が表示されます。

于 2016-12-13T05:01:02.547 に答える