C++ 通过VisualStudio使用Boost构建时未选择正确的VS版本或静态链接的LIB
错误2致命错误LNK1104:无法打开文件'libboost_regex-vc90-mt-gd-1_38.lib' 这不是一个路径问题。我有意不构建该.lib,并希望链接到mt-sgd-1_38.lib文件,但我不知道需要设置什么才能让boost的自动命名选择mt-sgd而不是mt-gdC++ 通过VisualStudio使用Boost构建时未选择正确的VS版本或静态链接的LIB,c++,visual-studio-2005,boost,C++,Visual Studio 2005,Boost,错误2致命错误LNK1104:无法打开文件'libboost_regex-vc90-mt-gd-1_38.lib' 这不是一个路径问题。我有意不构建该.lib,并希望链接到mt-sgd-1_38.lib文件,但我不知道需要设置什么才能让boost的自动命名选择mt-sgd而不是mt-gd 另外,我不确定它是如何检测到使用vc90的,但我正在尝试使用VS2005构建,即vc80。我相信标志“s”表示静态链接;ie:静态链接c运行库。这将是您应用程序的项目设置 另外,对于v80/v90问题,当我将v
另外,我不确定它是如何检测到使用vc90的,但我正在尝试使用VS2005构建,即vc80。我相信标志“s”表示静态链接;ie:静态链接c运行库。这将是您应用程序的项目设置
另外,对于v80/v90问题,当我将v90编译器与平台SDK的某些部分一起安装时,我也遇到了类似的问题。如果您在链接器对象名称中使用v90,那么很可能您实际上是在使用v90编译器进行构建,这在2005 IDE中是可能的,具体取决于路径设置和安装的内容。只要所有内容都匹配,就不应该成为问题。尝试向预处理器添加BOOST_LIB_诊断,我以前使用过它来解决此类问题,但我通常遇到相反的问题。它尝试静态,我想要动态,我修复了上次通过添加BOOST\u THREAD\u USE\u DLL,必须有其他等价物-我假设您只是用THREAD替换您正在使用的库的名称。对我有效的是在构建时使用此选项:runtime link=static,如中所示
#include <boost/regex.hpp>
int main(void)
{
return 0;
}
要让它发挥作用,还需要什么样的环境?我得到:“.\b2”未被识别为内部或外部命令、可操作程序或批处理文件。当我尝试运行时。\b2。。。使用my/boost目录中的VS 2017 x86本机工具命令提示符。
.\b2 runtime-link=static