首先,我想指出我没有使用c ++的经验,不知道链接器,标题或编译器之类的东西,所以请光临我。
我的任务是在TFS2010中创建一个构建定义,它将构建2010 c ++项目(vcxproj文件),但使用2005工具集(v80)。在互联网上搜索后,我确信在阅读this(1)和this(2)后可以实现这一点。阅读完这些文章之后,我在构建机器上安装了VS2005并阅读了这个article并为Visual Studio安装了Daffodil。完成这些步骤后,我能够将Platform Toolset更改为v80以用于所有必需项目,并继续设置构建定义以构建Release配置和Win32 / x64平台的项目。
运行构建定义后,第一个项目(在Win32平台上)无法构建,并显示以下错误消息:
TRACKER: Failed to locate: "CL.exe". The system cannot find the file specified.
我还尝试从构建定义中删除Win32平台,以便只构建x64平台。这导致了以下错误(同样,在第一个项目中):
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets (151): "cmd.exe" exited with code 9009.
我有一种感觉,我已经接近了我想去的地方,但我显然错过了或误解了路上的东西,我似乎无法弄清楚那是什么。
在第一次构建失败后(对于Win32平台),我注意到我的日志存在差异,并且我在研究期间阅读的第二篇文章的页面中间发布了示例日志文件。我看起来像这样:
CL.exe /c /Zi /nologo /W3 /WX- /O2 /Ob1 /Oy- /......
虽然示例构建日志如下所示:
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin\CL.exe /c /Zi /nologo /W3 /WX- /O2 /Ob1 /Oy- /......
猜测一下,我认为我错过了关于.props和.targets文件的内容,或者可能与VC ++目录有关,但是解决方案让我不知所措。
如果可以,请帮助我,并提前感谢您的帮助。
更新
我创建了一个测试构建定义,使用2005工具集为Win32 / x64平台的Release Configuration构建单个vcxproj文件。我已将项目属性的VC ++目录中的可执行目录更改为指向C:\ Program Files(x86)\ Microsoft Visual Studio 8 \ VC \ bin& C:\ Program Files \ Microsoft Visual Studio 8 \ VC \ bin,因为这是可以在两个平台上找到CL.exe的地方。这似乎解决了“无法找到CL.exe”问题,但是两个平台的构建都失败,错误“cmd.exe退出代码9009”。没有比以前好多少,但至少更加一致。