0

開発中にデバッグ コンソールを表示した Qt プロジェクトがあります。製品を出荷しようとしています。qmake コンソール コマンドを削除しました: CONFIG += console

ただし、それを行うと、次のエラーが発生します。

link /LIBPATH:"c:\Qt\4.5.0\lib" /NOLOGO /INCREMENTAL:NO /LTCG /MANIFEST /MANIFESTFILE:"./_obj/win32\Lynx.intermediate.manifest" /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /VERSION:4.00 /OUT:bin\win32\Lynx.exe @C:\DOCUME~1\hannentp\LOCALS~1\Temp\nm1C9.tmp 
link_.exe /LIBPATH:c:\Qt\4.5.0\lib /NOLOGO /INCREMENTAL:NO /LTCG /MANIFEST /MANIFESTFILE:./_obj/win32\Lynx.intermediate.manifest /SUBSYSTEM:WINDOWS /MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*' /VERSION:4.00 /OUT:bin\win32\Lynx.exe @C:\DOCUME~1\hannentp\LOCALS~1\Temp\nm1C9.tmp~
LINK_ : fatal error LNK1181: cannot open input file 'name='Microsoft.Windows.Common-Controls''
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\Bin\link.EXE"' : return code '0x49d'
Stop.

lib パスが欠落していると思いますが、多数の環境変数がセットアップされ、既に機能しています。これを見て、Microsoft.Windows.Common-Controls の場所を知っている人はいますか?

また、これを buildbot から実行しているため、VS2008 の IDE は実際には助けが必要な場所ではありません。

4

5 に答える 5

4

コマンドラインが引用符で囲まれているようです。

"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'"

2行目では、引用符がなくなり、リンカーは各単語をリンクするオブジェクトとして扱います。おそらく引用符を追加する必要があります(この引数を追加したのがあなたの場合)。開始および終了"\"(1つの引用符の代わりに3文字)。他の情報源もそれを示唆しているようですので、それを試してみてください。

于 2009-03-30T21:41:45.150 に答える
1

この問題についてさらに進展があったかどうかはわかりません。

非常によく似たエラーが発生しましたが、msvc2005 (IDE ではありません) でした。link_.exe のインスタンスがないため、修正を確認できません。

コンソール(CONFIG + =コンソール)を有効にすると、他の問題のためにリンクできませんでした-エントリポイントが見つかりませんでした:

Fatal Error LNK1561: Entry Point Must Be Defined

http://support.microsoft.com/kb/140597 後続のバックスラッシュ文字について話しているものをランダムに見つけました.msvc 4用であると述べられており、後で修正されたと思いました. コードを確認したところ、.pro ファイルで LIBPATH を指定すると、末尾にスラッシュが付きました。私はそれらを修正し、(CONFIG + =コンソール)でコンパイルするものを手に入れました。今、私はオプションを削除し、異なるがやや論理的な問題を抱えています:

MSVCRT.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16
app.exe : fatal error LNK1120: 1 unresolved externals

nmake の出力を見て、フォワード文字とバックスラッシュ文字を混在させているかどうか疑問に思っています

/MANIFESTFILE:"./_obj/win32\Lynx.intermediate.manifest"

この問題を引き起こしています。それは何か違うかもしれませんが。

CONFIG -= embed_manifest_exe.pro ファイルにもあることに注意してください。私の nmake アウトは次のようになります。

link /LIBPATH:"c:\Apps\boost\boost_1_38\lib" /NOLOGO /INCREMENTAL:NO /LTCG /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /OUT:valueForSba.exe @C:\DOCUME~1\LOCALS~1\Temp\nm398.tmp
Creating library app.lib and object app.exp
MSVCRT.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16
app.exe : fatal error LNK1120: 1 unresolved externals

また、このプロジェクトでは qt クラスを使用せず、qmake のみを使用して Makefile を取得します。(qmake 4.5.1 商用版から)

于 2009-05-31T00:54:59.233 に答える
0

私は同じ問題に苦しんでいます。このPCには2つの異なるMSVCバージョン(7.1と8.0)があることが判明しました。SDKは8.0用に構築されていますが、QtCreatorツール->オプション->Qt4->Qt4バージョンで7.1用に選択されています。そこでバージョン8.0に切り替えたところ、正常に動作するようになりました。

于 2009-06-18T10:19:58.843 に答える
0

私がMicrosoftのサイトで見つけたものから、Comctl32.dllは、ビルド環境にパスを見つけて追加するために必要なライブラリです。それが機能するかどうかを確認します。

于 2009-03-25T16:22:38.187 に答える
0

Qt の無料版は Visual Studio ではなく、Mingw でのみビルドできるという印象を受けました。無料版の Qt を使用している場合、それが問題になる可能性があります。Mingw に慣れていない場合は、さまざまな Windows 固有のライブラリの .lib ファイルを使用して Windows で使用できるように調整された GCC コンパイラ ツールチェーンです。

于 2009-03-25T16:17:34.377 に答える