Visual c++ 链接msvcprt中的boost静态正则表达式

Visual c++ 链接msvcprt中的boost静态正则表达式,visual-c++,boost,linker,Visual C++,Boost,Linker,我正在编译我的app/MT并针对boost-MT-s库(多线程静态)进行链接,但是boost regex库(版本1.45)似乎正在拉入/MD msvcrt.lib,这会导致链接器错误 我可以使用/NODEFAULTLIB:msvcrt.lib解决这个问题,但我更愿意修复它。这是boost中已知的bug还是我在做一些愚蠢的事情 相关链接器(/VERBOSE:lib)输出: 搜索/boost/stage/lib\libboost\u regex-vc100-mt-s-1\u 45.lib: 正在搜索

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

我可以使用/NODEFAULTLIB:msvcrt.lib解决这个问题,但我更愿意修复它。这是boost中已知的bug还是我在做一些愚蠢的事情

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

搜索/boost/stage/lib\libboost\u regex-vc100-mt-s-1\u 45.lib: 正在搜索C:\Program Files\Microsoft Visual Studio 10.0\VC\LIB\msvcprt.LIB:

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


简单的回答是永远不要使用多线程静态配置。VisualStudio的新版本甚至不允许这成为一个选项。

我一般是一个C/DOTNET开发人员,但现在有一个本地的Windows C++项目,它必须链接到静态增强库。虽然我更喜欢在整个应用程序中使用dll/程序集(与安全相关),但情况并非如此


我也在使用VisualStudio2010,最初很难链接到静态boost库。我发现实现这一点的唯一方法是创建一个新的Win 32静态库,以便与Boost库进行互操作。

这可能是一个很好的建议,尽管我使用Visual Studio 2010进行编译(哪个较新版本甚至不允许静态链接?)