强制scons使用旧版编译器?

9 投票
2 回答
2867 浏览
提问于 2025-04-16 00:12

我有一个用C++写的项目,里面用到了boost这个库。整个项目是用scons和Visual Studio 2008搭建的。我们安装了Visual Studio 2010,结果发现scons开始尝试用新版本的编译器,而不是老版本的,这导致项目构建失败,因为boost和Visual Studio 2010之间不太兼容。我们想要阻止这个情况,强制scons使用2008版本的编译器。请问这样做可以吗?我们该怎么做呢?

2 个回答

2

你需要重新定义CXX这个构建变量,最好是在你的环境设置中进行:

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

你可以通过选择你想要的版本来修改scons的环境设置:

env = Environment(MSVC_VERSION=<someversion>)

根据scons的手册:

MSVC_VERSION 设置你想使用的 Microsoft Visual C/C++的版本。

如果没有设置$MSVC_VERSION,SCons 默认会选择你系统上安装的最新 Visual C/C++版本。如果指定的版本 没有安装,工具初始化就会失败。 这个变量必须作为参数传递给 Environment()构造函数;之后再设置 是没有效果的。你可以把它设置为一个 意想不到的值(比如"XXX"),来查看 你系统上有效的值。

撰写回答