首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程/MT链接问题

线程/MT链接问题
EN

Stack Overflow用户
提问于 2012-01-27 22:22:06
回答 1查看 2.5K关注 0票数 0

我正在使用boost的线程库,并且在Visual中遇到了链接问题。

现在,我正在用/MT编译VS项目。我所链接的库名为libboost_thread-vc100-mt-1_48.lib,,它似乎表明它也是使用/MT编译的。

但是,如果我关闭链接器设置中的所有/MD相关库(属性-> linker -> Input ->忽略特定的默认库).

代码语言:javascript
复制
msvcrt.lib 
msvcrtd.lib 
msvcprt.lib 
msvcprtd.lib

那我就有链接错误了!

代码语言:javascript
复制
libboost_thread-vc100-mt-1_48.lib(thread.obj) : error LNK2001: unresolved external symbol __imp___gmtime64
libboost_thread-vc100-mt-1_48.lib(thread.obj) : error LNK2001: unresolved external symbol __imp___beginthreadex

只要关闭/MD相关库,怎么可能做到这一点?boost::线程应该只针对/MT中的库(应该是LIBCMT.LIB、LIBCPMT.LIB)进行链接。我编译的boost不正确吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-27 22:40:42

哈哈!林克被打败了!

看来我的预感是对的。我没有正确编译boost。要用boost构建来模拟/MT,您需要针对静态运行时库进行链接(链接到动态运行时库似乎是默认的)。

执行此操作的命令(用于发布boost::线程的版本构建)是:

代码语言:javascript
复制
.\b2 --with-thread variant=release link=static threading=multi runtime-link=static

希望这能帮助那些在他们的项目中打开/MT的人使用boost!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9040844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档