这有点奇怪。我正在尝试构建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”命令,并且构建失败。我会说这是构建失败的一些意外原因。 到目前为止,我已经尝试过:
我的设置 - Win2008R2,虚拟机。 - VS2010,最新更新 - VS2012,Update 1
实际错误: NMAKE:致命错误U1077:'“C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC \ BIN \ amd64 \ ml64.EXE”':返回代码'0x1' ml64.exe抱怨asm文件说它应该以“END”语句结束。确实如此,但...... 有什么想法吗?
答案 0 :(得分:0)
好的,因为问题出在perl并将文件写入stdout然后重定向它,你必须更改以下文件来构建x64版本:
你必须打开这些文件并将所有“打开STDOUT”无论文件“”更改为“打开我的$ asmfile”whaeverfile“”,然后处理字符串连接(仅在x86_64cpuid.pl中),然后将其打印到该文件而不是STDOUT,类似于“print $ code”到“print $ asm $ code” 当然,不要忘记关闭文件,换句话说将“关闭STDOUT”更改为“关闭$ asmfile”
显然,当构建x64以外的目标时,必须更改另一组文件。
将尝试将其传达给openssl维护者。