1

を使用してQtを構築しようとしていnmakeます。しかし、これを試してみると、以下のリンクエラーが発生します。

LINK : 致命的なエラー LNK1123: COFF への変換中にエラーが発生しました: ファイルが無効または破損しています

私の知る限り、これは .NET フレームワークのバージョン (私は .NET 4.5 を使用しています) が原因であり、VS2010 で C++ プロジェクトをコンパイルしているときに同じリンク エラーが発生します。それを取り除くために、この投稿で提案されているように、インクリメンタル リンクを無効にします。

nmakeしかし、VS コマンド ラインから実行している場合の方法がわかりません。構成中に言及する必要がありますか、それともパラメーターとして nmake に渡すことができますか?

4

2 に答える 2

1

これはリンカー フラグであるため、「nmake」ではなくリンカーに渡す必要があります。つまり、コマンド ラインからビルドする場合、Windows の makefile でリンカーの呼び出しを見つけて、そこに引数を渡す必要があります。疑似コードは次のとおりです。

foo: $(LD_COMMAND) /INCREMENTAL:いいえ

あなたができることは、qmakeプロジェクトファイルを開いて、これを書くことです:

QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO

次に、qmake コマンドを呼び出して、生成された Makefile を確認できます。「/INCREMENT:NO」を探します。別の方法で作成する場合は、同じように Makefile に入れる必要があります。

それ以外の場合は、ツールチェーンと環境に適した仕様ファイルを選択していれば、Makefile 生成用に qmake を実行すると機能します。

于 2014-01-06T00:52:09.053 に答える
0

mkspecs/win32-msvc2010/qmake.confQt 4と5の両方によると、QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NOすでにそこにあります。したがって、リリース モードで Qt をコンパイルする場合、他の問題に直面することになります。

于 2014-01-05T13:42:30.350 に答える