它有点奇怪的故事。我正在尝试构建 openssl 库。好吧,这不是我第一次这样做,直到现在还不错。但是,我决定向 TeamCity 添加构建配置(实际上问题与 TeamCity 无关)以按需构建我所有的第三方库。因此,我使用一组常用的 openssl 构建命令创建了一个步骤:
perl 配置VC-WIN64A
ms\do_win64a.bat
nmake /d /f ms\ntdll.mak
...并且在组装第一个 asm 文件时构建失败。所以我在 VS2012 x64 命令提示符下运行了相同的命令,并且构建成功,正如预期的那样。我花了一段时间才发现问题出在输出重定向上。Teamcity 将构建步骤的输出重定向到 teamcity 构建日志,我也通过将“>1.txt”添加到“nmake /d /f ms\ntdll.mak”命令,构建失败。我会说构建失败的原因有点出乎意料。到目前为止,我已经尝试过:
- 从带有重定向的 VS2010 命令提示符构建相同的内容,失败。
- 在没有重定向的情况下从 VS2010 命令提示符构建相同的内容,成功。
- 从 VS2010/VS2012 命令提示符构建相同的重定向到文件并强制重定向到 CON (nmake /d /f ms\ntdll.mak >CON >1.txt) 失败。
- 谷歌搜索“重定向控制台输出时出现的 nmake 问题” - 没有
- 谷歌搜索“重定向控制台输出时的openssl构建问题” - 没有
我的设置 - Win2008R2,虚拟机。- VS2010,最新更新 - VS2012,更新 1
实际错误: NMAKE : 致命错误 U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\BIN\amd64\ml64.EXE"' : return code '0x1' ml64.exe 抱怨 asm 文件说明它应该以“END”语句结尾。确实如此,但是……有什么想法吗?