Cygwin涉及来自原生Linux的wxWidgets库?

时间:2016-01-25 03:56:08

标签: cygwin wxwidgets toolchain crosstool-ng

我在x86-64 Linux的Cygwin目标上构建了一个工具链主机,现在我的项目涉及wxWidgets,跨平台GUI库。它涉及来自原生Linux 的wxWidgets库之前的工作。

我在Debian上构建了wxWidgets然后将生成的库文件复制到cygwin环境,我的项目通过编译,链接和二进制文件在Linux上可执行,但它似乎链接到wxWidgets库中的错误函数。

  1. [正确] wxApp :: Initialize() - > wxAppBase :: Initialize() - > wxAppBase :: OnInitGui()
  2. [错误] wxApp :: Initialize() - > wxAppBase :: Initialize() - >的 wxAppBase :: SafeYieldFor()
  3. ``` 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复制库,必须通过我的工具链在Cygwin上构建wxWidgets?

    另一个疑问是,在本机Linux上构建和在Cygwin上构建之间的库有什么不同?我认为它们都是针对x86-64 Linux的同一目标平台生成的。

1 个答案:

答案 0 :(得分:0)

我不确定您使用的是哪个版本的编译器,但通常Debian包含MinGW-w64交叉编译器,它也可以在Cygwin本机上使用。我的理解是Debian交叉编译器应该与本机交叉编译器兼容,但如果它与Cygwin兼容,我会感到惊讶。

无论如何,似乎从Debian交叉编译所有内容或编译Cygwin下的所有内容会更简单。