我正在编译我的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:库
答案 0 :(得分:1)
我通常是C#/ Dot Net开发人员,但现在有一个原生的Windows C ++项目,必须链接到静态Boost库。虽然我更喜欢在整个应用程序中使用dll / assembly(相关的安全性),但另有说法。
我也在使用Visual Studio 2010,并且最初努力链接到静态boost库。我发现唯一的方法是创建一个新的Win 32静态库来与Boost库进行互操作。
答案 1 :(得分:-1)
简短的回答是不要使用多线程静态配置。较新版本的Visual Studio甚至不允许这样做。