簡體   English   中英

無法找到所請求的Boost庫Windows Cmake

[英]Unable to find the requested Boost libraries Windows Cmake

我正在嘗試在Windows上構建Bytecoin源代碼,而我遇到了CMake和Boost庫的問題。 首先,我嘗試抓住Boost 1.55並自行編譯。 接近結尾的一個或兩個lib由於某種原因沒有編譯,但我認為CMake至少會識別已​​編譯的庫。 相反,我在嘗試加載CMake項目時遇到此錯誤:

錯誤:無法找到請求的Boost庫。 Boost版本:1.55.0 Boost包含路徑:C:/ Program Files / boost / boost_1_55_0找不到以下Boost庫:boost_system boost_filesystem boost_thread boost_date_time boost_chrono boost_regex
boost_serialization boost_program_options找不到Boost庫。 您可能需要將BOOST_LIBRARYDIR設置為包含Boost庫的目錄或BOOST_ROOT到Boost的位置。

然后我嘗試在find_package()中添加一個HINT。 它試圖解析一個奇怪的路徑,不知道它在做什么:

C:/ Program Files的CMake錯誤(x86)/CMake/share/cmake-3.4/Modules/FindBoost.cmake:273(if):cmake代碼中的語法錯誤

 C:/Program Files (x86)/CMake/share/cmake-3.4/Modules/FindBoost.cmake:273 

解析字符串時

 ${Boost_C:/PROGRAM FILES/BOOST/BOOST_1_55_0_LIBRARY_RELEASE} 

閱讀有關此問題的一些SO答案,我添加了環境變量:

C:\\ Users \\用戶米莎>集

BOOST_INCLUDEDIR = C:\\ local \\ boost_1_55_0 BOOST_LIBRARYDIR = C:\\ local \\ boost_1_55_0 \\ lib32-msvc-12.0 BOOST_ROOT = C:\\ local \\ boost_1_55_0 \\ boost

此時我嘗試使用預編譯的libs ,沒有。

CMkeLists.txt

find_package(Boost 1.55 REQUIRED COMPONENTS system filesystem thread date_time chrono regex serialization program_options)
#find_package(Boost 1.55 REQUIRED COMPONENTS system filesystem thread date_time chrono regex serialization program_options HINT "C:/Program Files/boost/boost_1_55_0")
include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
if (MINGW)
    set(Boost_LIBRARIES "${Boost_LIBRARIES};ws2_32;mswsock")
elseif (APPLE)
    set(Boost_LIBRARIES "${Boost_LIBRARIES}")
elseif (NOT MSVC)
    set(Boost_LIBRARIES "${Boost_LIBRARIES};rt")
endif ()

我不熟悉CMake,所以這可能是一個簡單的修復。 我只是看不到它。

我面臨同樣的錯誤,但解決了它。 我的BOOST庫是在Windows 7(64位)上使用Gcc 6.3構建的。

我在CMakeLists.txt設置了Boost_DEBUG on並找到了

- [C:/ Program Files / CMake / share / cmake-3.9 / Modules / FindBoost.cmake:1620]搜索SYSTEM_LIBRARY_RELEASE:libboost_system-mgw63-mt-1_67; libboost_system-mgw63-mt; libboost_system-mt-1_67; libboost_system -mt; libboost_system

這意味着FindPackage(Boost)正在搜索libboost_system-mgw63-mt-1_67但我的庫名是libboost_system-mgw63-mt-x64-1_67

所以我從所有的libray名稱中刪除了X64 ,現在它正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM