2009-11-19 40 views
0

我編譯一個簡單的wxWidgets應用程序在Mac OS X 10.6的XCode 3.2的wxWidgets和「IMPLEMENT_APP」導致_main符號重複錯誤

鏈接器返回有關符號_main錯誤被定義兩次:

  • 曾經在main.mm中
  • 曾經在test_app.cpp文件中。

後,我註釋掉宏:

Implement_App(TestApp) 

錯誤走了,編譯&相連,我是能夠運行應用程序。

我還沒有找到這個地方,所以對此有什麼想法?

回答

4

IMPLEMENT_APP是一個在wxWidgets中用來創建一個入口點的程序,而不用擔心程序是否會在Windows,Mac,* nix或其他任何程序中編譯。作爲此的結果,IMPLEMENT_APP具有以定義main(或其等價物,例如WinMain)。

您可能會發現IMPLEMENT_APP_NO_MAIN macro是有用的。請檢查wx/app.h中的其他IMPLEMENT_APP_XXX函數。

這一段從the wxApp overview是一點點也有幫助:

的使用注意事項IMPLEMENT_APP(appClass),它允許wxWidgets的以在wxWidgets的初始化中的適當位置動態創建的應用程序對象的實例。先前版本的wxWidgets過去依賴創建全局應用程序對象,但不再推薦這樣做,因爲在應用程序對象構建時可能沒有執行所需的全局初始化。

+0

真棒,謝謝,不知道 – cbrulak 2009-11-19 22:12:39