【问题标题】:Compiling native wxWidgets applications on Cygwin在 Cygwin 上编译原生 wxWidgets 应用程序
【发布时间】:2015-05-18 18:27:37
【问题描述】:

我想在 Linux 上使用 wxWidgets 开发跨平台应用程序,然后使用 Cygwin 将它们移植到 Windows。 最好有一种快速的方法来分发已编译的 Windows 应用程序二进制文件。 是否有人知道使用 Cygwin 编译和分发 wxWidgets 应用程序的方法,但最好不需要要求用户安装完整的 Cygwin 分发?

【问题讨论】:

    标签: c++ windows cygwin cross-platform wxwidgets


    【解决方案1】:

    您正在寻找的是 MinGW 工具链——它编译本地和独立的 Windows 二进制文件,不需要在目标机器上安装 Cygwin.dll(及其许可影响)。

    在 Cygwin 设置中搜索“mingw”。您将找到 GCC 工具链和相应的 wxWidgets 库。

    (不确定这些是基本 Cygwin 包的一部分还是需要 Cygwin Ports,反正我总是有效地使用两者。)


    话虽如此,使用 Cygwin.dll 当然意味着你不能使用它的 POSIX API。您将不得不寻找其他库来为您提供可移植性,而不是以此为目标。但是,由于 Cygwin 提供了各种预编译的 MinGW 库——包括 wxWidgets、Boost、ICU、pthreads、Glib、你的名字——这应该不是什么大问题。

    【讨论】:

    • 我需要一些 POSIX 操作,并且有一个本机窗口可以弹出来显示一些数据。
    • @Fernando:在 Windows 机器上需要什么样的 POSIX 操作,并且不能用便携式支持库中的东西代替?我提到的库(wxWidgets、Boost、ICU、pthreads、Glib)已经非常详尽了,而这只是 MinGW 可用库的一小部分......
    • 我有 3 个目标:一个在 ARM 上运行的 Linux 嵌入式系统,由于内存小,没有太多库选项;一个完整的 Linux 桌面和一个 Windows 桌面。我希望的一切都是继续使用“g++ sock_app.c”(效果很好)继续编译我的嵌入式应用程序,并让桌面应用程序使用几乎不变的同一段代码。我已经能够编译 wxwidgets,但是现在,我只需要删除 Windows 上的 X 依赖即可。
    • 请注意,使用MinGW您还可以从Linux交叉编译到Windows,因此如果您不想在Windows下进行任何开发。
    • @Fernando:嗯,你不能得到你想要的。要么你去 MinGW,这需要不使用 Cygwin 的 POSIX 层,这需要弄清楚你的 POSIX 要求到底是什么,并用可移植的东西替换它们(或找到合适的 Windows 包装器)。或者你去 Cygwin,这需要运送 Cygwin.dll 并使你的代码 GPL。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    相关资源
    最近更新 更多