在msvcprt中链接boost static regex pull

时间:2011-02-13 22:34:06

标签: visual-c++ boost linker

我正在编译我的app / MT并链接boost -mt -s库(多线程静态),但是boost regex库(版本1.45)似乎正在拉入/ MD msvcrt.lib,这会导致链接器错误。

我可以使用/NODEFAULTLIB:msvcrt.lib解决问题,但我宁愿修复它。它是一个已知的提升错误或我正在做一些愚蠢的事情?

相关链接器(/ VERBOSE:lib)输出:

  

搜索/boost/stage/lib\libboost_regex-vc100-mt-s-1_45.lib:    搜索C:\ Program Files \ Microsoft Visual Studio 10.0 \ VC \ LIB \ msvcprt.lib:

     

完成搜索库   链接:警告LNK4098:defaultlib'MSVCRT'与使用其他库冲突;使用/ NODEFAULTLIB:库

2 个答案:

答案 0 :(得分:1)

我通常是C#/ Dot Net开发人员,但现在有一个原生的Windows C ++项目,必须链接到静态Boost库。虽然我更喜欢在整个应用程序中使用dll / assembly(相关的安全性),但另有说法。

我也在使用Visual Studio 2010,并且最初努力链接到静态boost库。我发现唯一的方法是创建一个新的Win 32静态库来与Boost库进行互操作。

答案 1 :(得分:-1)

简短的回答是不要使用多线程静态配置。较新版本的Visual Studio甚至不允许这样做。