使用cmake和boost.找不到请求的Boost库



我已经尝试安装boost一段时间了,但我根本无法让它工作。我会仔细检查我所做的一切,所以可能会更容易理解为什么它不起作用。

我开始克隆简单WebSocket服务器
https://gitlab.com/eidheim/Simple-WebSocket-Server

我下载了boost 1.67
https://dl.bintray.com/boostorg/release/1.67.0/source/

来自文档
https://www.boost.org/doc/libs/1_67_0/more/getting_started/windows.html我使用
bootstrap
.b2构建所有内容

输出:

Boost C++库已成功构建
应将以下目录添加到编译器包含路径:
D:\boost_1_67_0
应将下列目录添加到链接器库路径:
D:\boost_1_6on_0\stage\lib

当我尝试将cmake与简单WebSocket服务器一起使用时,我会得到以下输出

C:\Program Files\CMake/share/CMake-3.12/Modules/FindBoost.CMake:577(消息):
导入的目标和依赖项信息不适用于Boost版本(1.33以上的所有版本)
调用堆栈(最新的调用优先):
C:\Program Files\CMake/share/CMake-3.12/Modules/FindBoost.CMake:959(_Boost_COMPONENT_DEPENDENIES

C:\Program Files/CMake/share/CMake-3.12/Modules/FindBoost处的CMake错误。CMake:2044(消息):
找不到请求的Boost库

找不到Boost头文件。请将BOOST_ROOT设置为根包含Boost或Boost_INCLUDEDIR的目录到包含Boost的标题
调用堆栈(最近的调用优先):
src/extlibs/Simple WebSocket Server/CMakeLists.txt:35(find_package)

经过多次搜索,我尝试了以下选项
CMake找到Boost,但导入的目标不适用于Boost版本
我已经有了最新的CMake(3.12.1)

CMake与Boost库Windows 10库未正确找到
我尝试使用这些选项重建
bootstrap.bat
b2 link=static runtime-link=static release stage
,但仍然无法工作

根据其他答案,我添加了
set(BOOST_ROOT "D:/boost_1_67_0/")
以及带有和不带有
set(BOOST_INCLUDEDIR "D:/boost_1_67_0/")
set(BOOST_LIBRARYDIR "D:/boost_1_67_0/libs")
我尝试过BOOST_INCLUDEDIRBOOST_LIBRARYDIR的许多变体,包括msvc特定的目录lib64-msvc-14.1

到CMakeList.txt(不首选,因为我希望项目不受影响)

将错误更改为

[C:/Program Files\CMake/share/CMake-3.12/Modules/FindBoost.CMake:1883]Boost_FOUND=1
找不到请求的Boost库

Boost版本:1.67.0

助推包括路径:D:/Boost__1_67_0

找不到以下Boost库:

boost_system
boost_thread
boost_coroutine
boost_context

已找到部分(但不是全部)必需的Boost库。你可以需要安装这些额外的Boost库。或者,设置BOOST_IBRARYDIR到包含BOOST库或BOOST_ROOT的目录到Boost的位置。调用堆栈(最近的调用优先):src/extlibs/Simple WebSocket Server/CMakeLists.txt:36(find_package)

我搜索了boost目录,发现了"丢失"的模块

我甚至尝试提取预构建的二进制文件,以防我的构建出现错误
https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/

我唯一还没有尝试的是
CMake Boost Libraries not Found Windows7但不应该是必要的吗?

我注意到我与https://stackoverflow.com/a/33380087/9230431说。我在boost_1_67_0根目录中没有include目录。

cmake缓存值

BUILD_SHARED_LIBS:BOOL=OFF
BUILD_TESTING:BOOL=OFF
CMAKE_CONFIGURATION_TYPES:STRING=Debug;释放MinSizeRel;RelWithDebInfo>LIB_EAY_DEBUG:FILEPATH=LIB_EAY_DEBUG-NOTFOUND
LIB_EAY_RELEASE:FILEPATH=LIB_EAY/RELEASE-NOTFOUND
LIB_SUFFIX:STRING=
OPENSSL_INLUDE_DIR:PATH=D:/Strawberry/c/INCLUDE
Qt5Core_DIR:PATH=c:/Qt/5.10.1/msvc2015/LIB/cmake/Qt5Core t5网络
Qt5OpenGL_DIR:PATH=c:/Qt/5.10.1/msvc2015/LIB/cmake/Qt5OpenGL
Qt5Widgets_DIR:PATH=C:/Qt/5.10.1/msvc2015/lib/cmake/Qt5Widgets
Qt5_DIR:PATH=C://Qt/5.10.1msvc2015/lib/cmmake/Qt5
SSL_EAY_DEBUG:FILEPATH=SSL_EAYDEBUG-NOTFOUND
SSL_EAY_RELEASE:FILEPATH=SSL_EAY_RERELEASE-NOTFOUND
USE_MSVC_RUNTIME_LIBRARY_DL:BOOL=ON
USE_STANDALONE_ASIO:BOOL=OFF


全cmake输出

使用Win32创建窗口
[C:/Program Files\CMake/share/CMake-3.12/Modules/FindBoost.CMake:1221]_boost_TEST_VERSIONS=1.68.0;1.68;1.67.0;1.67;1.66.0;1.66;1.65.1;1.65.0;1.65;1.64.0;1.64;1.63.0;1.63;1.62.0;1.62;1.61.0;1.61;1.60.0;1.60;1.59.0;1.59;1.58.0;1.58;1.57.0;1.57;1.56.0;1.56;1.55.0;1.55;1.54.0;1.54
[C:Program Files/CMake/share/CMake-3.12/Modules/FindBoost.CMake:1123]Boost_USE_MULTITREADED=TRUE
[Program Files/CRake/share/CMake-3.12/Modules/FindBoost.cmae:1125]Boost_UES_STATIC_LIBS=
[C:/Program Files/CMake/sshare/CMake-3.12/Modules/FindBoost。Boost.CMake:1129]Boost_ADDITIONAL_VERSIONS=
[C:/Program Files/CMake/share/CMake-3.12/Modules/FindBoost.CMake:11131]Boost_NO_SYSTEM_PATHS=
[Program Files/CMake/share/CMake-3.12/Modules.FindBoost.CMake:11199]声明为CMake或环境变量:[C:/Program Files/CMake/share/CMake-3.12/Modules/FindBoost.CMake:1203]BOOST_INCLUDEDIR=
[C:/Program Files/CMake/sshare/CMake-3.12/Modules/FindBoost.CMake:1205]BOOST_IBRARYDIR=
[C:/Program Files\CMake/share/cmike-3.12/Modules/FindBoosto.CMake:1207]_BOOST_TEST_VERSIONS=1.68.0;1.68;1.67.0;1.67;1.66.0;1.66;1.65.1;1.65.0;1.65;1.64.0;1.64;1.63.0;1.63;1.62.0;1.62;1.61.0;1.61;1.60.0;1.60;1.59.0;1.59;1.58.0;1.58;1.57.0;1.57;1.56.0;1.56;1.55.0;1.55;1.54.0;1.54
[C:/Program Files/CMake/share/CMake-3.12/Modules/FindBoost.CMake:1282]包括调试信息:
[Program Files/CMake/share/CMake-3.12/Modules/FindBoost.CMake:1284]_boost_Include_SEARCH_DIRS=D:/boost__1_67_0//Include;D:/boost__1_67_0/;路径;C:/local/boost_1_68_0;路径;C:/local/boost_1_68;路径;C:/local/boost_1_67_0;路径;C:/local/boost_1_67;路径;C:/local/boost_1_66_0;路径;C:/local/boost_1_66;路径;C:/local/boost_1_65_1;路径;C:/local/boost_1_65_0;路径;C:/local/boost_1_65;路径;C:/local/boost_1_64_0;路径;C:/local/boost_1_64;路径;C:/local/boost_1_63_0;路径;C:/local/boost_1_63;路径;C:/local/boost_1_62_0;路径;C:/local/boost_1_62;路径;C:/local/boost_1_61_0;路径;C:/local/boost_1_61;路径;C:/local/boost_1_60_0;路径;C:/local/boost_1_60;路径;C:/local/boost_1_59_0;路径;C:/local/boost_1_59;路径;C:/local/boost_1_58_0;路径;C:/local/boost_1_58;路径;C:/local/boost_1_57_0;路径;C:/local/boost_1_57;路径;C:/local/boost_1_56_0;路径;C:/local/boost_1_56;路径;C:/local/boost_1_55_0;路径;C:/local/boost_1_55;路径;C:/local/boost_1_54_0;路径;C:/local/boost_1_54;路径;C:/local/boost_1_53_0;路径;C:/local/boost_1_53;路径;C:/local/boost_1_52_0;路径;C:/local/boost_1_52;路径;C:/local/boost_1_51_0;路径;C:/local/boost_1_51;路径;C:/local/boost_1_50_0;路径;C:/local/boost_1_50;路径;C:/local/boost_1_49_0;路径;C:/local/boost_1_49;路径;C:/local/boost_1_48_0;路径;C:/local/boost_1_48;路径;C:/local/boost_1_47_0;路径;C:/local/boost_1_47;路径;C:/local/boost_1_46_1;路径;C:/local/boost_1_46_0;路径;C:/local/boost_1_46;路径;C:/local/boost_1_45_0;路径;C:/local/boost_1_45;路径;C:/local/boost_1_44_0;路径;C:/local/boost_1_44;路径;C:/local/boost_1_43_0;路径;C:/local/boost_1_43;路径;C:/local/boost_1_42_0;路径;C:/local/boost_1_42;路径;C:/local/boost_1_41_0;路径;C:/local/boost_1_41;路径;C:/local/boost_1_40_0;路径;C:/local/boost_1_40;路径;C:/local/boost_1_39_0;路径;C:/local/boost_1_39;路径;C:/local/boost_1_38_0;路径;C:/local/boost_1_38;路径;C:/local/boost_1_37_0;路径;C:/local/boost_1_37;路径;C:/local/boost_1_36_1;路径;C:/local/boost_1_36_0;路径;C:/local/boost_1_36;路径;C:/local/boost_1_35_1;路径;C:/local/boost_1_35_0;路径;C:/local/boost_1_35;路径;C:/local/boost_1_34_1;路径;C:/local/boost_1_34_0;路径;C:/local/boost_1_34;路径;C:/local/boost_1_33_1;路径;C:/local/boost_1_33_0;路径;C:/local/boost_1_33;路径;C:/boost/include;C:/boost/sw/local/include
[C:/Program Files/CMake/share/CMake-3.12/Modules/FindBoost.CMake:1286]_boost_PATH_SUFFIXES=boost-1_68_0;boost_1_68_0;助推/助推-1_68_0;升压/升压_1_68_0;助推器-1_68;boost_1_68;助推/助推-1_68;助推/助推_1_68;助推-1_67_0;boost_1_67_0;助推/助推-1_67_0;升压/升压_1_67_0;boost-1_67;boost_1_67;助推/助推-1_67;助推/助推_1_67;助推-1_66_0;boost_1_66_0;助推/助推-1_66_0;助推/助推_1_66_0;助推-1_66;boost_1_66;助推/助推-1_66;boost/boost_1_66;助推-1_65_1;boost_1_65_1;助推/助推-1_65_1;升压/升压_1_65_1;助推-1_65_0;boost_1_65_0;助推/助推-1_65_0;助推/助推_1_65_0;助推器-1_65;boost_1_65;助推/助推-1_65;助推/助推_1_65;助推-1_64_0;boost_1_64_0;助推/助推-1_64_0;升压/升压_1_64_0;boost-1_64;boost_1_64;boost/boost-1_64;升压/升压_1_64;助推器-1_63_0;boost_1_63_0;助推/助推-1_63_0;升压/升压_1_63_0;boost-1_63;boost_1_63;boost/boost-1_63;boost/boost_1_63;助推器-1_62_0;boost_1_62_0;助推/助推-1_62_0;升压/升压_1_62_0;boost-1_62;boost_1_62;助推/助推-1_62;助推/助推_1_62;boos

它现在正在工作。我不知道它到底是什么,我只是重新安装了所有东西,然后重新建造了所有东西。正如vre所建议的,我认为这可能与CMakeCache有关,因为cmake gui和命令提示符使用不同的缓存。

最新更新