#include <boost/regex.hpp>
int main(void)
{
return 0;
}
错误2致命错误LNK1104:无法打开文件'libboost_regex-vc90-mt-gd-1_38.lib'
这不是一个路径问题。我故意没有.lib构建,并希望链接到mt-sgd-1_38.lib文件,但我不知道我需要设置什么才能使用boost的自动命名选择mt-sgd而不是mt -gd。
另外,我不确定它是如何检测使用vc90的,但我正在尝试使用VS 2005进行构建,即vc80。
答案 0 :(得分:1)
我相信标志('s')表示静态链接;即:静态链接c-runtime库。这将是您应用程序的项目设置。
另外,对于v80 / v90问题,当我将v90编译器与平台SDK的某些部分一起安装时,我也有类似的问题。如果您在链接器对象名称中获得v90,则可能实际上是使用v90编译器构建的(这可能在2005 IDE中,具体取决于路径设置和安装的内容)。只要一切都匹配,就不应该成为问题。
答案 1 :(得分:0)
尝试将BOOST_LIB_DIAGNOSTIC添加到预处理器中,我之前用过这个来解决这些问题,但是我通常遇到了相反的问题。它尝试静态,我想要动态,我上次通过添加BOOST_THREAD_USE_DLL修复,必须有其他等价物 - 我假设您只需用THREAD代替您正在使用的库的名称。
答案 2 :(得分:0)
对我来说有用的是在构建时使用此选项:runtime-link = static,如
.\b2 runtime-link=static