Cygwin использует библиотеки wxWidgets из родного Linux?

Я построил узел набора инструментов на цели Cygwin для Linux x86-64, теперь мой проект включает в себя wxWidgets, кросс-платформенную библиотеку GUI. Он работает до привлечения библиотек wxWidgets из родного Linux.

Я собрал wxWidgets в Debian, затем скопировал сгенерированные библиотечные файлы в среду cygwin, мой проект прошел компиляцию, линковку и бинарный файл, исполняемый в Linux, но, похоже, он ссылается на неправильную функцию в библиотеке wxWidgets.

  1. [Правильно] wxApp:: Initialize () -> wxAppBase::Initialize() -> wxAppBase:: OnInitGui ()
  2. [Неверно] 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.

Другие вопросы по тегам