2017-09-29 1 views
0

私は、Visual Studio 2017でソースからブーストをコンパイルしている、と私は私のCMakeLists.txtに次のコマンドでそれを見つけるために、CMakeの3.9.3を使用しています:CMakeでVS 2017でコンパイルしたBoostファイルシステムライブラリの検索方法?

find_package(Boost REQUIRED COMPONENTS filesystem) 

私はこのようにCMakeを呼び出しています:

cmake -G "Visual Studio 15 2017" .. 
    -DBOOST_ROOT="C:\Users\emlai\src\libs\boost_1_65_0" 
    -DBOOST_LIBRARYDIR="C:\Users\emlai\src\libs\boost_1_65_0\lib64-msvc-15.0" 

私は、次のメッセージが表示されます:

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

    Boost version: 1.65.0 

    Boost include path: C:/Users/emlai/src/libs/boost_1_65_0 

    Could not find the following Boost libraries: 

      boost_filesystem 

    Some (but not all) of the required Boost libraries were found. You may 
    need to install these additional Boost libraries. Alternatively, 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:31 (find_package) 


CMake Error at C:/Program Files/CMake/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:137 (message): 
    Could NOT find SDL2 (missing: SDL2_LIBRARY SDL2_INCLUDE_DIR) 
Call Stack (most recent call first): 
    C:/Program Files/CMake/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:377 (_FPHSA_FAILURE_MESSAGE) 
    build/cmake-modules/FindSDL2.cmake:173 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) 
    CMakeLists.txt:42 (find_package) 


-- Configuring incomplete, errors occurred! 
See also "C:/Users/emlai/src/zenith/build/CMakeFiles/CMakeOutput.log". 
See also "C:/Users/emlai/src/zenith/build/CMakeFiles/CMakeError.log". 

dir C:\Users\emlai\src\libs\boost_1_65_0\lib64-msvc-15.0の出力は、ファイルシステムライブラリが整っていることを示しています。

回答はすべてhereでしたが、成功しませんでした。同じことが、hereからダウンロードされたあらかじめ作成されたBoostライブラリでも起こります。

どうすればこの問題を解決できますか?

+0

ライブラリはx86またはx64ですか?アプリケーションがx86またはx64を探していますか? –

+0

@BenVoigt x64しかし、決して気にしないで、それを働かせました。 CMakeに 'Boost_COMPILER'変数を指定しなければなりませんでした。 – emlai

答えて

1

-DBoost_COMPILER="-vc141"をCMakeに渡す必要がありました(-vc141はBoostライブラリのファイル名と同じ文字列です)。

関連する問題