【问题标题】:Cygwin involves wxWidgets libraries from native Linux?Cygwin 涉及来自本机 Linux 的 wxWidgets 库?
【发布时间】:2016-01-25 03:56:07
【问题描述】:

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

我在 Debian 上构建了 wxWidgets,然后将生成的库文件复制到 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 复制库,必须通过我的工具链在 Cygwin 上构建 wxWidgets?

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

【问题讨论】:

    标签: cygwin wxwidgets toolchain crosstool-ng


    【解决方案1】:

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

    无论如何,从 Debian 交叉编译所有内容或在 Cygwin 下编译所有内容似乎要简单得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-16
      相关资源
      最近更新 更多