处理 wxWidgets 的多个编译

Handling multiple compilations of wxWidgets

我计划在 Ubuntu 16.10 上使用 wxWidgets 开发一个小规模的图形用户界面应用程序。我已经下载了 3.1.0 版本的源码包,我能够成功地为本机平台和 Windows 使用 MinGW 构建包。

但是,问题是我无法弄清楚应该将哪些前缀传递给 ../configure --prefix= 命令。

如果我没有为前缀传递任何内容,然后使用 make install 安装它们,第二个将覆盖第一个。尽管 wx-config 将其他配置显示为 "Also found in /usr/local...",但我无法使用 --toolkit=gtk2 选项 select 它,wx-config 表示没有这样的构建。

所以基本上,根据 linux 命名规则和一般的 wxWidgets 约定,每个构建的前缀应该是什么?

注意:构建是:gtk2-unicode-static-3.1x86_64-w64-mingw32-msw-unicode-static-3.1

原则上,wx-config 绝对应该能够 select 在同一个库的多个构建之间(这大约是其整个逻辑和目的的 90%),但我恐怕 wx-config 构建 selection 和 --host 选项的逻辑可能存在问题,select 在您的情况下需要正确的构建。

我不确定自己,因为我实际上从不在多个构建之间使用 wx-config 到 select,而是根本不安装它们并使用构建目录中的脚本。 IE。我确定有效的是:

$ mkdir -p ~/build/wx/gtk
$ cd $_
$ ~/src/wx/configure # of course, you can add other options, if needed
$ make -s
$ mkdir ../msw
$ cd $_
$ ~/src/wx/configure --host=x86_64-w64-mingw32 --with-msw
$ make -s
$ cd ~/src/my/program
$ make WX_CONFIG=~/build/wx/gtk/wx-config # or the MSW one

使用 wxWidgets 构建而不像这样安装它确实浪费了一些磁盘 space(你可以 rm *.o 回收大部分,当然 - 只是不要这样做 make clean 这也会删除库),但除此之外它只有优点:

  1. 您不需要任何通常需要写入 /usr/local 或任何地方的特殊权限。
  2. 您可以根据需要轻松拥有任意数量的构建,只需 select 选择正确的 wx-config
  3. 即可明确地在它们之间进行选择
  4. 如果出现任何问题,您可以随时rm -rf ~/build/wx/whatever重新开始。