2

如果可能的话,是否有人知道如何在Visual Studio 2008中使用Visual Studio 2010(编译器/链接器/ sdk)附带的完整C++工具集?
会改变所有的目录听选项 - >项目和解决方案 - > VC++目录是否足够,或者有更多的?假设我这样尝试,有没有什么要注意的地方?如何在Visual Studio 2008中使用Visual Studio 2010 C++工具?

+0

虽然你可以得到这个工作,但这不可能是一个非常愉快的经历。 Visual Studio 2010为Visual C++添加了多目标支持,因此您可以使用它来定位不同版本的工具集,包括Visual C++ 2008和Visual C++ 2010,但该功能在Visual Studio 2008中不存在。 – 2011-04-09 07:54:05

+0

@JamesMcNellis:但请求是相反的,即使用VS2008 IDE和更新的C++编译器。 – 2012-04-19 18:18:16

+0

@ Mr_C64:我知道请求是什么。正如我在评论开始时所指出的那样,“你可以做到这一点,这不可能是一个非常愉快的经历。”然后,我建议Visual Studio 2010具有多目标支持,如果您想要同时定位2008和2010编译器,那么使用Visual Studio 2010 IDE(和基于MSBuild的vcxproj项目)以及使用这两个编译器编译器。这就是说,我很高兴stijn找到了一个相对简单的解决方案。 – 2012-04-19 18:25:01

回答

3

我有点忘了这个问题,直到今天有朋友说C++ 0x有多伟大。我仍然爱上VS2008,比2010年更重要,因为它比所有事情都慢,因此决定放弃它。 而且,我仍然无法相信它,但实际上只有极少的黑客行为。

它的效果很好:在VS2008之前,你甚至都没有注意到它实际上使用了2010工具集。除非你看cl/link的标志。或者当然,除非你突然能够使用lambdas。至今我都找不到任何问题。编辑等工作,像alwasy做的,建筑工程,调试工作,这就是我需要的。

这里就是我所做的:

  • 做一个批处理文件设置为使用envorinment与Windows SDK 7.1/VS2010工具集,但是从VS2008安装离开devenv的。大部分来自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中。因此,如果您采用原始版本,并用$(ProgramFiles)\ Microsoft Visual Studio 10.0 \ VC \替换所有出现的$(VCINSTALLDIR),它也可以工作。