Build Boost Coroutine2

Build Boost Coroutine2

本文关键字:Coroutine2 Boost Build      更新时间:2023-10-16

,因为这已被标记为重复:此问题与基本"如何安装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 lib。

现在,我尝试使用安装了1.61的Boost 1.61在另一台计算机上运行该项目 - 它完美无缺!在检查Coroutine2/lidet/config.hpp(确定要链接的库(之后,我注意到Boost 1.61想要加载Coroutine Lib,而Boost 1.64需要Coroutine2 Lib ...

在Boosts入门上,Page coroutine2并未列为"已建立"库,在解剖config.hpp文件后,我想出的想法定义了#define BOOST_COROUTINES2_NO_LIB,这导致了许多未知的符号。。

我不知道我还能做什么,请帮助,亲爱的专业人士:(

首先,我发现哪个精确的CPP正在生成LNK1104错误。然后,我启用了"预处理到文件的预处理"选项,以在预处理文件中查看,谁在提出链接请求。然后宾果游戏!

#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

中的错误

P.S。通过定义BOOST_ALL_NO_LIB在我的项目中禁用自动链接并手动设置必要的libs,解决问题。

boost.coroutine2是一个仅标头库-libboost_coroutine2-vc140-mt-gd-1_64.lib ist未创建。您应该检查项目的链接标志,并删除对libboost_coroutine的引用。

编辑:从boost.coroutine2

删除子目录'构建'

我在MS Visual Studio构建时在Boost 1.64中遇到了相同的问题。使用Boost 1.65,我不再遇到此问题。

您可以将libboost_coroutine-xxx.lib复制到boost_coroutine2-xxx.lib并将其放在LIB路径中。因为oroutine2不使用lib。因此,无论lib中哪个内容都没有区别。