【问题标题】:How to use Visual Studio 2010 C++ tools in Visual Studio 2008?如何在 Visual Studio 2008 中使用 Visual Studio 2010 C++ 工具?
【发布时间】:2011-08-01 23:57:18
【问题描述】:

如果可能的话,有谁知道如何在 Visual Studio 2008 中使用随 Visual Studio 2010 提供的完整 c++ 工具集(编译器/链接器/sdk)?
更改选项->项目和解决方案->VC++目录下的所有目录就足够了,还是还有更多?假设我这样尝试,有什么注意事项吗?

【问题讨论】:

  • 虽然您可能能够完成这项工作,但这不太可能是一次非常愉快的体验。 Visual Studio 2010 增加了对 Visual C++ 的多目标支持,因此您可以使用它来针对不同版本的工具集,包括 Visual C++ 2008 和 Visual C++ 2010,但该功能在 Visual Studio 2008 中不存在。
  • @JamesMcNellis:但请求是相反的,即使用带有较新 C++ 编译器的 VS2008 IDE。
  • @Mr_C64:我知道请求是什么。正如我在评论开头指出的那样,“你可能能够让这个工作正常进行,这不太可能是一次非常愉快的体验。”然后我建议 Visual Studio 2010 具有多目标支持,如果您想同时针对 2008 和 2010 编译器,则使用 Visual Studio 2010 IDE(和基于 MSBuild 的 vcxproj 项目)并使用两者进行编译会更容易编译器。也就是说,我很高兴 stijn 找到了一个相对简单的解决方案。

标签: visual-studio visual-studio-2008 visual-studio-2010 visual-c++


【解决方案1】:

我有点忘记了这个问题,直到今天一个朋友说 C++0x 有多棒。我仍然爱着 VS2008,比 2010 更爱它,最重要的是它很慢,所以决定试一试。 而且,我仍然不敢相信,但只需最少的 hack,它就可以正常工作。

而且效果很好:坐在 VS2008 之前,您甚至不会注意到它实际上使用的是 2010 工具集。除非您查看 cl/link 的徽标。或者当然,除非你突然能够使用 lambdas。到目前为止,我找不到任何问题。像往常一样编辑等工作,构建工作,调试工作,这就是我所需要的。

这就是我所做的:

  • 制作一个批处理文件来设置环境,以便与 Windows SDK 7.1 / VS2010 工具集一起使用,但将 devenv 从 VS2008 安装中移除。大部分是从 2010 年的 setenv.cmd 复制而来的。
  • 现在是脏位:将 msobj100.dll、mspdb100.dll、mspdbcore.dll 和 mspdbsrv.exe 复制到 2010 的 VSINSTALLDIR/bin 目录中(或将它们放在 PATH somweher 中)。这是必需的,否则 cl.exe 不起作用,调试也不起作用。
  • 从使用devenv /useenv 运行批处理文件的同一命令行启动
  • 微笑

这是用于 x64 机器的批处理文件:

SET PlatformToolset=Windows7.1SDK
SET ToolsVersion=4.0
SET WindowsSDKVersionOverride=v7.1
SET Path32=%ProgramFiles(x86)%
SET "VCINSTALLDIR=%Path32%\Microsoft Visual Studio 10.0\VC\"
SET "VSINSTALLDIR=%Path32%\Microsoft Visual Studio 10.0\"
SET "VCTools=%VCINSTALLDIR%Bin"
SET "VCTools=%VCTools%;%VCTools%\VCPackages;"
SET "VCLibraries=%VCINSTALLDIR%Lib"
SET "VCIncludes=%VCINSTALLDIR%INCLUDE"
SET Path=%FxTools%;%VSTools%;%VCTools%;%SdkTools%;%Path%
SET OSLibraries=%WindowsSdkDir%Lib
SET OSIncludes=%WindowsSdkDir%INCLUDE;%WindowsSdkDir%INCLUDE\gl
SET "LIB=%VCLibraries%;%OSLibraries%;%FxTools%"
SET "LIBPATH=%FxTools%;%VCLibraries%"
SET "INCLUDE=%VCIncludes%;%OSIncludes%"

EDIT 不是将批处理文件与 /useenv 结合使用,还有另一种方法可以做到相同但更直接:VC++ 目录的设置都保存在文件 %APPDATA%/VisualStudio/9.0/VCComponents 中.dat。因此,如果您使用原始文件并将所有出现的 $(VCINSTALLDIR) 替换为 $(ProgramFiles)\Microsoft Visual Studio 10.0\VC\,它也可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 2011-01-16
    相关资源
    最近更新 更多