9

Qt 4.7.4 をコンパイルしようとしていますが、常に次のエラーが発生します。

mt.exe: general error c101008d: Failed to write the updated manifest to the resource of file "release\tutorial5.exe". The system cannot find the file specified. 
NMAKE : fatal error U1077: '"C:\Program Files(x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe"' : return code '0x1f'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop. 
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop. 
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

Visual Studio コマンド プロンプトを使用して、次のコマンドを実行しました。

configure -debug-and-release -opensource -platform win32-msvc2010
nmake

このエラーを解決するにはどうすればよいですか?

4

3 に答える 3

3

したがって、どうやらtutorial5.exeは適切に、または完全にビルドできず、exeは作成されません。Mt.exe は、署名付きファイルとカタログの生成に使用される Windows ポストビルド ツールです。ファイルが見つからないため、エラーが返されます。

問題を解決するには、ビルドからデモとチュートリアルを除外するか、チュートリアル 5 のソース コードでバグを見つけて、正しくビルドする必要があります。または、tutorial5.exe のダミー バージョンを配置して、それが唯一のエラーかどうかを確認することもできます。

ソース コードのバグは、Windows の Qt 用の既定のコンパイラ ツール (MingW) と msvs2010 コンパイラの違い、および一部の Windows 固有のコードを処理しようとしている方法に関係している可能性があります。

Qt のビルド時にサンプルを除外する方法

同様のプロジェクトをオンラインで行っている他の人々は、フラグ「sub-src」を使用して、nmake ビルド呼び出しから例を除外しています。

チュートリアル5.exeとは

Qt for のデフォルト ビルドの場所は次のrelease/tutorial5.exeとおりです。

C:\QtSDK\Examples\4.7\qtestlib\tutorial5

ここにドキュメントがあります: Qt 4.8: Chapter 5: Writing a Benchmark

おそらく、問題を説明するチケットを Qt プロジェクトに送信する必要があります: bugreports.qt.io

幸運を。

于 2012-05-18T00:05:37.303 に答える
1

Microsoft Visual Studio コマンド プロンプトを管理者として実行してみてください。チャーム パネルに移動して MSVS プロンプトを検索したら、右クリックして管理者として実行します。

于 2015-01-20T03:54:53.177 に答える
1

Windows 7 64 ビットで Qt 4.8.1、Creator 2.7.1、MSVC2010 Express を使用した Qt コンソール アプリケーションでの同様のエラー:

"mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file ... " 

そして、何かに沿って

The process cannot access the file because it is being used by another process.

ただし、アプリケーションはビルドされ、Creator 内から「実行」できます。エラーは、「実行」ではなく「ビルド」でも発生します。私は当初、これはタイミングの問題ではないかと考えていました。たとえば、作成者がプログラムを実行するためにシェルを開始するのが早すぎたのです。ファイルが削除された後、問題なく動作します(エラーなし)。

私のGIT(またはTortoiseGIT)がファイルにアクセスしている可能性がありますが、それらのプロセスは表示されません。

編集: 書き込まれているファイルをチェックするウィルス スキャナーの可能性もあります。編集 2: 確認済み: スキャナーを一時的に無効にすると問題が解決します

于 2013-07-04T10:04:02.670 に答える