我正在使用 Visual Studio 2012 开发我的项目,并且我还安装了 Visual Studio 2010 - 这使我可以选择在 Visual Studio 2012 中使用 VC++10 编译器(项目属性),但我也安装了 Visual C++ 6并且不知何故,Visual Studio 2012 中不存在使用 VC++6 编译器的选项,如何(手动)添加此选项?
1 回答
答案肯定是可能的。这似乎很有可能,但我无法获得 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 尝试所有这些。希望一切正常。
链接
- CodePlex 的水仙花
- C ++ 团队博客上的 VS 2010 的C++ 原生多目标
- VS Android - 使用 VS 2010 以 Android 为目标的配置
- VS-Tool - 针对各种框架的配置:Clang、EmScripten、MinGW、NACL、Python