如何强制 scons 使用旧的编译器?

9

我有一个使用boost的C++项目。整个项目是使用scons + Visual Studio 2008构建的。我们安装了Visual Studio 2010,结果发现scons试图使用后来的编译器而不是旧版本的编译器,并且由于boost和Visual Studio 2010目前还不太兼容,因此无法构建该项目。我们希望抑制这种情况并强制scons使用2008版本。这可能吗?我们应该如何做到这一点?

2个回答

17
你可以通过选择所需版本来修改scons环境:
env = Environment(MSVC_VERSION=<某个版本>)
从scons手册中得知:
MSVC_VERSION设置首选的Microsoft Visual C/C++版本。
如果未设置$MSVC_VERSION,则SCons(默认情况下)将选择系统上安装的最新版本的Visual C/C++。如果未安装指定版本,工具初始化将失败。此变量必须作为Environment()构造函数的参数传递;稍后设置它没有效果。将其设置为意外值(例如"XXX")以查看您的系统上的有效值。

明天早上我会尝试。 - Maciek
env = Environment(MSVC_VERSION=9.0) 已经生效。 - Maciek
1
MSVC_VERSION='11.0Exp' 用于制作2012Express。 - vrdhn

2

您需要重新定义CXX构造变量,最好在您的环境中进行:

env = Environment(CXX = "C:\\path\to\vs2008\executable")

嗨,抱歉回复晚了,我明天会尝试一下。 - Maciek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接