0

wxWidgets2.9.4をCode::Blocks + MinGWで動作させるにはどうすればよいですか?ライブラリ(リリースのみ)を構築し、いくつかのコードをコーディングしました。イベントテーブルなしでビルドすると正常に動作しますが、イベントテーブルを使用するとエラーが発生します。

イベントテーブルがある場合のビルドメッセージのダンプは次のとおりです。

obj\Debug\main.o||In function `_ZN21wxEventTableEntryBaseC2EiiP14wxEventFunctorP8wxObject':|
C:\wxWidgets\include\wx\event.h|2870|undefined reference to `_wxTheAssertHandler'|
C:\wxWidgets\include\wx\event.h|2871|undefined reference to `wxOnAssert(char const*, int, char const*, char const*, char const*)'|
obj\Debug\main.o||In function `_ZN20wxEventFunctorMethodI14wxEventTypeTagI14wxCommandEventE12wxEvtHandler7wxEventS3_EC1EMS3_FvRS4_EPS3_':|
C:\wxWidgets\include\wx\event.h|374|undefined reference to `_wxTheAssertHandler'|
C:\wxWidgets\include\wx\event.h|374|undefined reference to `wxOnAssert(char const*, int, char const*, char const*, char const*)'|
obj\Debug\main.o||In function `_ZN20wxEventFunctorMethodI14wxEventTypeTagI14wxCommandEventE12wxEvtHandler7wxEventS3_EclEPS3_RS4_':|
C:\wxWidgets\include\wx\event.h|392|undefined reference to `_wxTheAssertHandler'|
C:\wxWidgets\include\wx\event.h|392|undefined reference to `wxOnAssert(char const*, int, char const*, char const*, char const*)'|
||=== Build finished: 6 errors, 0 warnings ===|

および別のビルドログ:

-------------- Build: Debug in G1BC ---------------

Compiling: main.cpp
Linking executable: bin\Debug\G1BC.exe
obj\Debug\main.o: In function `_ZN21wxEventTableEntryBaseC2EiiP14wxEventFunctorP8wxObject':
C:/wxWidgets/include/wx/event.h:2870: undefined reference to `_wxTheAssertHandler'
C:/wxWidgets/include/wx/event.h:2871: undefined reference to `wxOnAssert(char const*, int, char const*, char const*, char const*)'
obj\Debug\main.o: In function `_ZN20wxEventFunctorMethodI14wxEventTypeTagI14wxCommandEventE12wxEvtHandler7wxEventS3_EC1EMS3_FvRS4_EPS3_':
C:/wxWidgets/include/wx/event.h:374: undefined reference to `_wxTheAssertHandler'
C:/wxWidgets/include/wx/event.h:374: undefined reference to `wxOnAssert(char const*, int, char const*, char const*, char const*)'
obj\Debug\main.o: In function `_ZN20wxEventFunctorMethodI14wxEventTypeTagI14wxCommandEventE12wxEvtHandler7wxEventS3_EclEPS3_RS4_':
C:/wxWidgets/include/wx/event.h:392: undefined reference to `_wxTheAssertHandler'
C:/wxWidgets/include/wx/event.h:392: undefined reference to `wxOnAssert(char const*, int, char const*, char const*, char const*)'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 4 seconds)
6 errors, 0 warnings

Code :: Blocksは、このコードのビットが問題であると言っています: 悪いコード

よろしくお願いします。よろしくお願いします。

4

1 に答える 1

1

常にそのままにしておく必要がありDEBUG_FLAG=1ます。そうしないと、アサートがコンパイルされません。

MSW の install.txt には次のように書かれています。

wxWidgets でのデバッグ サポートのレベルを指定します。これは、BUILD および DEBUG_INFO オプションの両方から独立していることに注意してください。デフォルトでは常に 1 に設定され、デバッグ サポートが有効になっていることを意味します。アサートはコードにコンパイルされます (アプリケーションのリリース ビルドではデフォルトで非アクティブですが、有効にすることができます)。wxLogDebug() と wxLogTrace() が使用可能で、WXDEBUGが定義されています。0 に設定すると、wxWidgets のすべてのデバッグ コードが完全に無効になり、2 に設定すると、実稼働環境には適さないと見なされる時間のかかるアサーションとチェックも有効になります。

于 2012-08-21T19:33:15.483 に答える