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

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


person dougpuob    schedule 25.01.2016    source источник


Ответы (1)


Я не уверен, какие версии каких компиляторов вы используете, но обычно Debian включает кросс-компилятор MinGW-w64, который также доступен изначально и под Cygwin. Насколько я понимаю, кросс-компилятор Debian должен быть совместим с родным, но я был бы удивлен, если бы он был совместим с компилятором Cygwin.

В любом случае, кажется, что было бы намного проще либо кросс-компилировать все из Debian, либо скомпилировать все под Cygwin.

person VZ.    schedule 25.01.2016