ちょっと変わった話です。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のコマンドプロンプトから同じものをビルドして成功。
- ファイルへのリダイレクトと CON (nmake /d /f ms\ntdll.mak >CON >1.txt) へのリダイレクトを強制して、VS2010/VS2012 コマンド プロンプトから同じものをビルドすると失敗しました。
- 「コンソール出力がリダイレクトされたときの nmake の問題」のグーグル検索 - 何もない
- 「コンソール出力がリダイレクトされたときのopensslビルドの問題」のグーグル-何もない
私のセットアップ - Win2008R2、仮想マシン。- VS2010、最新のアップデート - VS2012、アップデート 1
実際のエラー: NMAKE: 致命的なエラー U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\BIN\amd64\ml64.EXE"': リターン コード '0x1' ml64.exe が asm ファイルについて不平を言う「END」ステートメントで終了する必要があると述べています。それはありますが... 何かアイデアはありますか?