Я построил узел цепочки инструментов на цели Cygwin для x86-64 Linux, теперь мой проект включает в себя wxWidgets, кросс-платформенную библиотеку графического интерфейса. Он работает до подключения библиотек 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? Я думаю, что оба они созданы для одной и той же целевой платформы для x86-64 Linux.