是否可以将 VS2008 配置为使用较旧的 VC++ 编译器进行构建?

Posted

技术标签:

【中文标题】是否可以将 VS2008 配置为使用较旧的 VC++ 编译器进行构建?【英文标题】:Is it possible to configure VS2008 to build using older VC++ compilers? 【发布时间】:2009-10-08 13:41:49 【问题描述】:

对于 C# WinForms 和 ASP.Net 项目,我们使用 VS2008 团队版和 TFS 进行签出/签入、更改控制等(此外,我们还可以使用以前的 Visual Studio 版本回到版本 6)。

我们刚刚继承了一个基于 VC++ 版本 6 MFC 的应用程序。将其迁移到更高版本的 VC++ 编译器(以及 Visual Studio 和 Windows)还没有考虑到。目标可执行文件必须在 NT 4、2000 和 XP(是的,NT)上运行。

只是为了好玩,我们已经尝试直接从 VC++ 6 迁移到 VS 2003,但 MFC 库的变化足以引发无数警告和错误。

除了复习 C++ 和 MFC(已经有一段时间了),我们还需要确定如何将其融入我们的环境。理想情况下,我们希望在 VS2008 IDE 中构建应用程序以利用 TFS 更改控制和工作流,但让 VS2008 使用版本 6 编译器和 MFC 库。这可能吗?能否将 Visual Studio 2008 连接到针对早期版本的 C++ 编译器和 MFC 库进行构建,或者我们是否坚持使用 SourceSafe 在 VC++ 版本 6 中维护此应用程序?

【问题讨论】:

【参考方案1】:

是的,这是可能的。诀窍是为旧版本设置环境,然后启动 VS2008 指示它使用当前环境。

这是我用来运行 VS2008 并用 VC 6 编译的批处理文件:

call "d:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"
start "" "D:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" /useenv

【讨论】:

当然 - 为了使用 VC6 编译器和库,如 OP 所愿,您必须安装 VC6。 我遇到了 /useenv 的问题,但我很傻,我没有安装 VS 2008 C++,只有 6.0。我在网上搜索了一些其他人也有同样的问题,所以如果他们偶然发现这篇文章,只需安装 C++ 2008 即可。【参考方案2】:

我不确定是否要替换编译器本身,但您可以更改包含的目标文件夹,以便新编译器链接到旧的 .lib 和 .h 文件。这应该可以解决兼容性问题。

您可以在项目设置中找到所有这些配置选项。

更新

您似乎可以更改编译器可执行文件以及库文件和包含文件。在您的项目设置中查找以下设置:

库文件位置(.lib 文件) 包含文件位置(.h 文件) 可执行文件位置(应更改为指向 VC++ 6.0 编译器和链接器位置)

【讨论】:

以上是关于是否可以将 VS2008 配置为使用较旧的 VC++ 编译器进行构建?的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 在转换为 2013 的项目上使用较旧的 2012 编译器

vc++ 应用程序向后兼容性

是否有任何工具可以改善 vc++(vs2008)中的智能感知? [关闭]

支持较旧的 iOS 版本

我是不是将 Ansi OUTER JOIN 语法正确地转换为较旧的 Sybase (*=) 连接语法?

如何将较旧的 clickhouse 分区移动到 S3 磁盘 [关闭]