2012-03-24 111 views
1

我在我的VC2011项目中使用Boost.Regex和最新的Boost.Regex被编译为静态和动态库。编译我的项目与boost :: regex链接为静态

我强迫我的VC项目,以静态库(boost_regex-vc110-MT-1_49.lib)链接,但该项目被编译后在运行时,它报告说:

缺少boost_regex-vc110-MT-1_49.dll

我GOOGLE了类似的问题,有人建议使用/D "BOOST_ALL_NO_LIB",我想这一点,但它并不能帮助。

+0

你执行完整的重建(清理,然后构建)? – hmjd 2012-03-24 07:44:30

+0

是的,我做过。但它不能帮助程序。但我注意到一件事,因为我也使用boost :: random,一旦我手动将静态lib(boost_random-vc110-mt-1_49.lib)链接到项目中,它就不会在运行时问我该DLL。 – user1285419 2012-03-24 07:50:41

回答

0

如果您定义了BOOST_ALL_NO_LIB,那么您必须手动指定所有Boost依赖关系。所以,如果你想所有静态链接,然后定义BOOST_ALL_NO_LIB并手动链接所有内容。否则,如果只是线程,请使用BOOST_REGEX_NO_LIB并手动链接Boost.Regex