boost的链接设置

正在用boost::asio做一个项目的底层通讯。之前做demo的时候用的boost是编译成静态库形式,一切都很顺利。但这个项目想将通讯底层封装成dll的形式,所以决定将boost库也以dll的形式链接。结果先是出现

1>LINK : fatal error LNK1104: 无法打开文件“libboost_system-vc100-mt-gd-1_43.lib”

检查boost里面提供自动链接功能的 config\auto_link.hpp 发现要定义 BOOST_DYN_LINK 宏才能将 lib前缀去掉。随定义 BOOST_DYN_LINK,

结果出现 

1>LINK : fatal error LNK1104: 无法打开文件“libboost_date_time-vc100-mt-gd-1_43.lib”

不知道为什么 BOOST_DYN_LINK 没有控制住 date_time 库的前缀,好在 date_time 和 Regex 虽然是自动链接的 但是 能 通过 -DBOOST_DATE_TIME_NO_LIB-DBOOST_REGEX_NO_LIB 声明 将他们禁止掉。

开始以为 -DBOOST_DATE_TIME_NO_LIB-DBOOST_REGEX_NO_LIB 声明 指的是宏定义,最后才发现 是 配置属性->c/c++ ->命令行。。。。应该是命令行编译的东西,有空再详细了解吧。

===================================================

在连接 thread库的时候 又出现 LINK : fatal error LNK1104: 无法打开文件“libboost_thread-vc100-mt-gd-1_43.lib”,即便设置BOOST_DYN_LINK也一样没有效果,应该和 date_time 和 Regex 库一样的问题,查资料后发现是要定义 BOOST_ALL_DYN_LINK。 其实这个宏在 <boost/config/user.hpp> 中就能定义一下,以后只要直接包含这个头文件就好了。。。

因为thread库有用到 一些时间相关的东西 所以 不能 -DBOOST_DATE_TIME_NO_LIB-DBOOST_REGEX_NO_LIB。

原文链接: https://www.cnblogs.com/lixiangbin/archive/2010/09/03/1817110.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    boost的链接设置

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/14647

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午2:22
下一篇 2023年2月7日 下午2:22

相关推荐