Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 通过VisualStudio使用Boost构建时未选择正确的VS版本或静态链接的LIB_C++_Visual Studio 2005_Boost - Fatal编程技术网

C++ 通过VisualStudio使用Boost构建时未选择正确的VS版本或静态链接的LIB

C++ 通过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

错误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问题,当我将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