WxWidgets / GCC / MacOs X: Comment puis-je construire et relier la bibliothèque wxWidgets correctement?

voix
1

Je suis en train de porter une application de fenêtres basé sur wxWidgets 2.8.9 à Mac OS X. Je suis arrivé au point où tout est compilé avec succès, à l' exception de quelques symboles manquants liés à wxWidgets. Je l' ai essayé avec wxWidgets compilant la ligne de commande et avec XCode et j'ai essayé plusieurs options de configuration différentes, mais rien de tout cela a fonctionné correctement. Le Wiki WxWidgets a quelques articles sur ce ici , mais la plupart des informations est dépassée et rien de tout cela a résolu mon problème.

Le plus proche je suis arrivé était en compilant WxWidgets à la ligne de commande avec

./configure --enable-monolithic
make

Ensuite, je la bibliothèque en lié ajoutant « wxMac-2.8.9 / lib / libwx_mac-2.8.a » aux « Autres drapeaux linker » dans mes paramètres du projet XCode.

Mais cela me donne les erreurs liant suivant:

WxOnAssert (char const *, int, char const *, char const *, char const *), référencé à partir de: wxStringBase :: wxStringBase (wxStringBase const &) dans MyFrame.o wxCloseEvent :: Veto (bool) dans MyFrame.o wxStringBase :: wxStringBase (wxStringBase const &) dans TGameSettingsForm.o wxCheckBoxBase :: DoSet3StateValue (wxCheckBoxState) dans TGameSettingsForm.o wxCheckBoxBase :: DoGet3StateValue () const dans TGameSettingsForm.o wxStringBase :: wxStringBase (wxStringBase const &) dans NonoGameStates.o wxStringBase :: wxStringBase ( wxStringBase const &) dans TWxInvalidRegCodeForm.o

_iconv_close, référencé à partir de: wxMBConv_iconv :: ~ wxMBConv_iconv () dans libwx_mac-2.8.a (monolib_strconv.o) wxMBConv_iconv :: ~ wxMBConv_iconv () dans libwx_mac-2.8.a (monolib_strconv.o) wxMBConv_iconv :: ~ wxMBConv_iconv () dans libwx_mac-2.8.a (monolib_strconv.o) wxMBConv_iconv :: ~ wxMBConv_iconv () dans libwx_mac-2.8.a (monolib_strconv.o)

WxAppConsole :: OnAssert (char const *, int, char const *, char const *), référencé à partir de: vtable pour CMyWxApp3_wxstaticAppin MyWxApp3-wxstaticApp.o

_iconv, référencé à partir de: wxMBConv_iconv :: GetMBNulLen () const dans libwx_mac-2.8.a (monolib_strconv.o) wxMBConv_iconv :: WC2MB (char *, * const wchar_t, unsigned long) constin libwx_mac-2.8.a (monolib_strconv.o ) wxMBConv_iconv :: WC2MB (char *, * const wchar_t, unsigned long) constin libwx_mac-2.8.a (monolib_strconv.o) wxMBConv_iconv :: MB2WC (wchar_t *, char const *, unsigned long) constin libwx_mac-2.8.a (monolib_strconv .o) wxMBConv_iconv :: MB2WC (wchar_t *, char const *, unsigned long) constin libwx_mac-2.8.a (monolib_strconv.o) wxMBConv_iconv :: wxMBConv_iconv (char const *) dans libwx_mac-2.8.a (monolib_strconv.o)

WxAppConsole :: OnAssertFailure (char const *, int, char const *, char const *, char const *), référencé à partir de: vtable pour CMyWxApp3_wxstaticAppin MyWxApp3-wxstaticApp.o _iconv_open, référencé à partir de: wxMBConv_iconv :: wxMBConv_iconv (char const *) dans libwx_mac-2.8.a (monolib_strconv.o) wxMBConv_iconv :: wxMBConv_iconv (char const *) dans libwx_mac-2.8.a (monolib_strconv.o) wxMBConv_iconv :: wxMBConv_iconv (char const *) dans libwx_mac-2.8.a ( monolib_strconv.o) wxMBConv_iconv :: wxMBConv_iconv (char const *) dans libwx_mac-2.8.a (monolib_strconv.o) ld: symbole (s) non trouvé collect2: ld retourné 1 état de sortie

Si possible, je préférerais liaison dynamique, et non la liaison statique tel qu'il est utilisé ci-dessus. Cependant, pour le moment, je serais heureux de le faire fonctionner du tout. Si quelqu'un pouvait me donner (ou point pour moi) une étape de travail par étape la description sur la façon de compiler et lier la bibliothèque wxWidgets, je serais très reconnaissant.

Merci,

Adrian

Créé 23/02/2009 à 15:53
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
1

Je n'ai pas construit WX sous Mac OS, mais je ne l'utilise largement sous Windows et Linux. Les instructions de la page que vous avez lié ressemblent beaucoup à ceux sous Linux et il dit:

À la suite de faire, vous trouverez la bibliothèque construite sous votre dossier (par exemple, la construction de libération). Ceci est également où le WX-config correspondant est.

Le script WX-config sous Linux fait des projets de construction d' une brise, vous utilisez simplement la commande wx-config --cxxflagspour obtenir les options de compilation nécessaires pour gcc et wx-config --libsd'obtenir toutes les bibliothèques nécessaires pour relier. Dans des environnements de construction tels que le Code :: Blocks vous pouvez utiliser ces commandes dans les paramètres du projet, mais je ne suis pas familier avec XCode - mais pire des cas , il vous suffit de copier les options du compilateur et éditeur de liens que les listes de script WX-config.

Créé 23/02/2009 à 16:43
source utilisateur

voix
0

wxOnAsserterreurs concernant la PI signifient que vous construisez votre bibliothèque débogage ( __WXDEBUG__définie, NDEBUGn'est pas) alors que les bibliothèques wxWidgets ont été construites dans la version build ( __WXDEBUG__non défini). La solution est simple: ne pas faire cela.

Si vous avez besoin de construire une version de débogage, construire wxWidgets en mode débogage trop en utilisant l' --enable-debugargument configurer et utiliser wx-config --debug ...pour obtenir les indicateurs appropriés.

Créé 23/01/2010 à 18:17
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more