12

我正在使用 Visual Studio 2012 开发我的项目,并且我还安装了 Visual Studio 2010 - 这使我可以选择在 Visual Studio 2012 中使用 VC++10 编译器(项目属性),但我也安装了 Visual C++ 6并且不知何故,Visual Studio 2012 中不存在使用 VC++6 编译器的选项,如何(手动)添加此选项?

4

1 回答 1

19

答案肯定是可能的。这似乎很有可能,但我无法获得 VC 6 的副本,因此无法验证它。我能够做的是让 VS 2012 使用 VC 7 (VS 2002) 来编译一个项目。

更新:答案肯定是肯定的。OP 在评论中指出,他能够通过使用此解决方案使 VC 6 正常工作。

配置

我这样做的方法是安装以下内容(按安装顺序):

Windows 7,SP1,32 位

我选择 Windows 7 是因为它是最早支持 VS 2012 的 Windows 版本。我使用 32 位版本是因为 VS 2002 (VC7) 无法安装在 x64 机器上。

视觉工作室 2002,SP1

正如我所提到的,我无法获得 VC6。在微软的网站上找不到它。布鲁斯在这个问题下的评论提供了这个有用的见解:

Microsoft 不提供 Visual C++ 6.0(包括通过 MSDN),因为它包含 Microsoft JVM。有关详细信息,请参阅此链接。——布鲁斯克兰

看到上面的内容后,我认为安装 VS 2002 (VC 7) 是下一个最好的选择。

显然,如果您有副本1 ,您将在此处安装 VC 6 。

1我应该指出,对于任何感兴趣的人,VC 6 都可以在 Ebay 上获得。如果我以实际货币而不是积分获得报酬,我会加倍努力并获得一份 VC 6 进行测试。

视觉工作室 2010,SP1

唯一的原因是它是对Daffodil的要求。更多关于下面的水仙花。

Visual Studio 2012,更新 2

这是原始问题的要求。

水仙花

这是一组配置文件,允许 VS 2010 和 VS 2012 以较旧的 VC 编译器为目标。

目前,这些是受支持的 VC 编译器版本:

  • VC 8 (Visual Studio 2005)
  • VC 7.1 (Visual Studio 2003)
  • VC 7 (Visual Studio 2002)
  • VC 6 (Visual Studio 6)

我应该注意到,Daffodil 并未正式支持 VS 2012 作为 IDE,但它似乎确实有效。从水仙花网站:

只要还安装了 VS 2010,Daffodil 就可以在 VS 2012 和更高版本2中正常工作。

2 使用 VS 2013 和 VS 2015 时似乎存在调试问题,如此处所述:
Debugging information does not match, when using v60 platform toolset inside Visual Studio 2013

测试

为了测试上述内容,我在 Visual Studio 2012 中创建了一个新的 C++ Win 32 控制台项目。然后我从项目中删除了所有头文件和 cpp 文件——这些文件是 VS 2012 特有的,因此不需要。然后我添加了一个简单的“hello world”文件,我可以用它来测试:

#include <iostream.h>

void main()
{
   cout << "Hello World!" << endl;   
}

按原样使用项目(针对 VS 2012),我尝试构建它但失败了。

接下来,我右键单击项目并选择属性。我选择了对话框左侧的配置属性,然后在右侧的Platform Toolset下选择了v70。您会注意到v60还有一个选项:

测试项目属性

然后我将更改保存到项目并进行了构建。它成功构建了一个exe。为了验证是否使用了 VC 7,我在编译期间启动了Process Monitor :

编译期间的进程监视器

如您所见,编译器 cl.exe 是从 VC 7 目录中调用的。

最后的想法

最初的问题涉及编译现有的 VC 6 项目。对此仅作几点说明。

我的猜测是,为了重新定位工作,您必须在 VS 2012 中创建一个新的空项目,然后添加所有现有的源文件。这样做的原因显然是两个版本的 Visual Studio 之间的项目格式不同。

正如我所提到的,我使用 VC 7 而不是 6 进行了测试。我想最后一步是让 OP 使用 VC 6 尝试所有这些。希望一切正常。

链接

于 2013-05-10T16:40:34.987 回答