gpt4 book ai didi

c++ - 构建 Boost Coroutine2

转载 作者:行者123 更新时间:2023-11-28 05:07:26 26 4
gpt4 key购买 nike

由于之前已将其标记为重复:此问题与基本的“如何安装 boost...”无关。 Boost 已安装,除 coroutine2 之外的所有库都正常工作。所以这是一个 coroutine2 问题。

尝试编译我的项目时出现以下链接器错误:

LNK1104 cannot open file 'libboost_coroutine2-vc140-mt-gd-1_64.lib'

检查后我注意到文件丢失了,即使我使用以下命令构建了 boost:

b2 install --build-type=complete msvc -mt

所以我尝试使用以下命令手动构建它:

b2 install --build-type=complete msvc -mt --with-coroutine2

发生了一些有趣的事情:它构建了它所基于的 Boost.Context(它已经由第一个命令构建),但是看不到 Coroutine2 库。

现在我尝试在我的另一台安装了 boost 1.61 的计算机上运行该项目 - 它运行得非常完美!在检查了 coroutine2/detail/config.hpp(确定要链接的库)之后,我注意到 boost 1.61 想要加载协程库,而 boost 1.64 需要一个 coroutine2 库...

关于 boost Getting Started Coroutine2 页面未被列为“必须构建”库,在剖析 config.hpp 文件后,我想到了定义 #define BOOST_COROUTINES2_NO_LIB 的想法,这导致了许多未知符号...

我不知道我还能做什么,请各位专业人士帮忙:)

最佳答案

首先,我找到了产生 LNK1104 错误的确切 cpp。然后我启用了“Preprocess to a File”选项以在预处理文件中查看谁在发出链接请求。然后宾果游戏!

#line 401 "C:\\libdev4\\boost\\boost/config/auto_link.hpp"
#pragma comment(lib, "boost_coroutine2" "-" "vc140" "-mt" "-gd" "-" "1_64" ".lib")

所以,这是 boost 1.64 auto_link.hpp 中的一个错误

附注通过在我的项目中定义 BOOST_ALL_NO_LIB 并手动设置必要的库来禁用自动链接,解决了这个问题。

关于c++ - 构建 Boost Coroutine2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44365495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com