Cygwin использует библиотеки wxWidgets из родного Linux?
Я построил узел набора инструментов на цели Cygwin для Linux x86-64, теперь мой проект включает в себя wxWidgets, кросс-платформенную библиотеку GUI. Он работает до привлечения библиотек wxWidgets из родного Linux.
Я собрал wxWidgets в Debian, затем скопировал сгенерированные библиотечные файлы в среду cygwin, мой проект прошел компиляцию, линковку и бинарный файл, исполняемый в Linux, но, похоже, он ссылается на неправильную функцию в библиотеке wxWidgets.
- [Правильно] wxApp:: Initialize () -> wxAppBase::Initialize() -> wxAppBase:: OnInitGui ()
- [Неверно] wxApp:: Initialize () -> wxAppBase::Initialize() -> wxAppBase:: SafeYieldFor ()
`` `bool wxAppBase:: Initialize (int & argcOrig, wxChar ** argvOrig) {.....
if ( !wxAppConsole::Initialize(argcOrig, argvOrig) )
return false;
wxInitializeStockLists();
wxBitmap::InitStandardHandlers();
// for compatibility call the old initialization function too
if ( !OnInitGui() )
return false;
return true;
} `` `
Кто-нибудь знает почему? или я не могу копировать библиотеки из Linux напрямую, приходится собирать wxWidgets на Cygwin через мой набор инструментов?
Еще одно сомнение: чем отличаются библиотеки между сборкой на собственном Linux и сборкой на Cygwin? Я думаю, что оба они генерируют для одной и той же целевой платформы для Linux x86-64.
1 ответ
Я не уверен, какие версии каких компиляторов вы используете, но, как правило, Debian включает кросс-компилятор MinGW-w64, который также доступен изначально и под Cygwin. Насколько я понимаю, кросс-компилятор Debian должен быть совместим с нативным, но я был бы удивлен, если бы он был совместим с Cygwin.
В любом случае кажется, что было бы намного проще либо кросс-компилировать все из Debian, либо компилировать все под Cygwin.