Я пытаюсь портировать приложение Windows, основанное на WxWidgets 2.8.9, на MacOS X. Я дошел до того, что все успешно компилируется, за исключением нескольких отсутствующих символов, связанных с WxWidgets. Я попытался скомпилировать WxWidgets с помощью командной строки и с помощью XCode, и я попробовал несколько различных вариантов конфигурации, но ни один из них не работал должным образом. В WxWidgets Wiki есть несколько статей об этом здесь , но большая часть информации устарела, и ни одна из них не решила мою проблему.
Самое близкое, что я получил, было скомпилировать WxWidgets в командной строке с
./configure --enable-monolithic
make
Затем я связал библиотеку, добавив «wxMac-2.8.9 / lib / libwx_mac-2.8.a» к «Другие флаги компоновщика» в моих настройках проекта XCode.
Но это дает мне следующие ошибки компоновки:
"wxOnAssert (char const *, int, char const *, char const *, char const *)", на который ссылаются из:
wxStringBase :: wxStringBase (wxStringBase const &) в MyFrame.o
wxCloseEvent :: Veto (bool) в MyFrame.o
wxStringBase :: wxStringBase (wxStringBase const &) в TGameSettingsForm.o
wxCheckBoxBase :: DoSet3StateValue (wxCheckBoxState) в TGameSettingsForm.o
wxCheckBoxBase :: DoGet3StateValue () const в TGameSettingsForm.o
wxStringBase :: wxStringBase (wxStringBase const &) в NonoGameStates.o
wxStringBase :: wxStringBase (wxStringBase const &) в TWxInvalidRegCodeForm.o
"_ iconv_close", на который ссылаются:
wxMBConv_iconv :: ~ wxMBConv_iconv () в libwx_mac-2.8.a (monolib_strconv.o)
wxMBConv_iconv :: ~ wxMBConv_iconv () в libwx_mac-2.8.a (monolib_strconv.o)
wxMBConv_iconv :: ~ wxMBConv_iconv () в libwx_mac-2.8.a (monolib_strconv.o)
wxMBConv_iconv :: ~ wxMBConv_iconv () в libwx_mac-2.8.a (monolib_strconv.o)
"wxAppConsole :: OnAssert (char const *, int, char const *, char const *)", на который ссылаются из:
vtable for CMyWxApp3_wxstaticAppin MyWxApp3-wxstaticApp.o
"_ iconv", по ссылке с:
wxMBConv_iconv :: GetMBNulLen () const в libwx_mac-2.8.a (monolib_strconv.o)
wxMBConv_iconv :: WC2MB (char *, wchar_t const *, unsigned long) constin libwx_mac-2.8.a (monolib_strconv.o)
wxMBConv_iconv :: WC2MB (char *, wchar_t const *, unsigned long) constin libwx_mac-2.8.a (monolib_strconv.o)
wxMBConv_iconv :: MB2WC (wchar_t *, char const *, long без знака) constin libwx_mac-2.8.a (monolib_strconv.o)
wxMBConv_iconv :: MB2WC (wchar_t *, char const *, long без знака) constin libwx_mac-2.8.a (monolib_strconv.o)
wxMBConv_iconv :: wxMBConv_iconv (char const *) в libwx_mac-2.8.a (monolib_strconv.o)
"wxAppConsole :: OnAssertFailure (char const *, int, char const *, char const *, char const *)", на который ссылаются из:
vtable для CMyWxApp3_wxstaticAppin MyWxApp3-wxstaticApp.o
"_iconv_open", по ссылке с:
wxMBConv_iconv :: wxMBConv_iconv (char const *) в libwx_mac-2.8.a (monolib_strconv.o)
wxMBConv_iconv :: wxMBConv_iconv (char const *) в libwx_mac-2.8.a (monolib_strconv.o)
wxMBConv_iconv :: wxMBConv_iconv (char const *) в libwx_mac-2.8.a (monolib_strconv.o)
wxMBConv_iconv :: wxMBConv_iconv (char const *) в libwx_mac-2.8.a (monolib_strconv.o)
ld: символ (ы) не найден
collect2: ld вернул 1 статус выхода
Если возможно, я бы предпочел динамическое связывание, а не статическое связывание, как описано выше. Тем не менее, на данный момент я был бы счастлив запустить его вообще. Если бы кто-нибудь мог дать мне (или указать мне) рабочее пошаговое описание того, как скомпилировать и связать библиотеку WxWidgets, я был бы очень благодарен.
Спасибо
Адриан