2009-11-19 6 views
0

Je compile une application wxWidgets trivial sur Mac OS X 10.6 avec XCode 3.2wxWidgets et « Implement_App » provoque _main doublon symbole

L'éditeur de liens est renvoie une erreur sur le symbole _main étant défini deux fois:

  • une fois dans main.mm
  • une fois dans le fichier test_app.cpp.

Après avoir commenté la macro:

Implement_App(TestApp) 

L'erreur est parti, compilé & lié et je suis en mesure d'exécuter l'application.

Je n'ai pas trouvé cela n'importe où donc des idées à ce sujet?

Répondre

4

IMPLEMENT_APP est une macro utilisée dans wxWidgets pour créer un point d'entrée au programme sans se soucier de savoir si le programme sera compilé sous Windows, Mac, * nix ou autre. Par conséquent, IMPLEMENT_APPa pour définir main (ou son équivalent, tel que WinMain). Vous pouvez trouver le IMPLEMENT_APP_NO_MAIN macro utile. Vérifiez les autres fonctions IMPLEMENT_APP_XXX dans wx/app.h, aussi.

Ce paragraphe de the wxApp overview est un peu utile aussi:

Notez l'utilisation de IMPLEMENT_APP (appClass), qui permet wxWidgets de créer dynamiquement une instance de l'objet d'application au moment approprié dans l'initialisation wxWidgets. Les versions précédentes de wxWidgets reposaient sur la création d'un objet d'application global, mais cela n'est plus recommandé, car l'initialisation globale requise peut ne pas avoir été effectuée au moment de la construction de l'objet application.

+0

génial, merci, ne savait pas que – cbrulak

Questions connexes