2016-09-25 21 views
3

全体エラー出力ビーイング:Qtのプロジェクト:「未解決の外部シンボルwWinMain」

LNK2019 unresolved external symbol wWinMain referenced in function "int __cdecl __scrt_common_main_seh(void)" ([email protected]@YAHXZ) kachna-tracker C:\dev\kachna-tracker\MSVCRT.lib(exe_wwinmain.obj) 

これはQtの創造主からインポートしたプロジェクトである、と私はReleaseを構築しようとすると、このエラーはのみ発生バージョンDebugバージョンは正常に動作します。私が知る限り、デバッグバージョンのライブラリ(例:qtmain.lib/qtmaind.lib)のほかに、DebugReleaseの設定の間にリンカの設定に違いはありません。

私はこのエラーが/SUBSYSTEM:CONSOLE代わりの/SUBSYSTEM:WINDOWSにサブシステムを設定することにより固定することができることを見出してきました、そして、これが実際に問題を解決し、私はGUIアプリケーションを構築していて、恒久的に開いているコンソールウィンドウはかなり見苦しいです原因だけでなく症状を修正している可能性があります。

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

+0

同様 - http://stackoverflow.com/questions/6626397/error-lnk2019-unresolved-external-symbol-winmain16-referenced-in-function – sashoalm

答えて

3

TL; DR

いずれか:

  • 無効ユニコード盤
  • 内または/エントリを追加:リリース

qtmainでmainCRTStartupリンカーフラグライブラリは、WinMain関数のラッパーを提供しますWindowsでは、クロスプラットフォームのmain()関数を定義することができます。 今のところ、qtmainライブラリでは、wWinMain関数(WinMainエントリポイントのUnicode版)はサポートされていません。

多分あなたのデバッグビルドとリリースビルドの違いは、あなたがリリースで有効になっているUnicodeでコンパイルし、デバッグではないことです。

Unicodeを有効にしてコンパイルする場合は、qtmainライブラリにリンクしないでください。プレーンな古いメインの代わりにwWinMainを定義する必要があります。

また、美しく標準的なメイン機能を維持するために、/ entry:mainCRTStartupリンカフラグを追加することもできます。詳細についてはthis linkを参照し、エントリポイントの詳細についてはthis awesome answerを参照してください。

+0

私は実際に "Unicode"を有効にしてデバッグをコンパイルしますが、ポイントフィックスが機能し、答えをリンクしてくれてありがとう! –

関連する問題