处理wxWidgets的多个编译

时间:2016-12-28 20:02:28

标签: c++ mingw wxwidgets ubuntu-16.04

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

然而,问题是我无法弄清楚我应该传递给../configure --prefix=命令的前缀。

如果我没有为前缀传递任何内容,然后使用make install安装它们,则第二个会覆盖第一个。虽然wx-config将其他配置显示为“也在/ usr / local ...中找到”,但我无法使用--toolkit=gtk2选项选择它,wx-config表示没有这样的构建。

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

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

1 个答案:

答案 0 :(得分:0)

原则上,wx-config绝对应该能够在同一个库的多个构建之间进行选择(这大约是其整个逻辑和生活目的的90%),但我担心可能存在构建选择的wx-config逻辑和--host选项存在问题,在您的案例中选择正确的构建时需要这样做。

我不确定自己,因为我实际上从不使用wx-config在多个版本之间进行选择,而是根本不安装它们并使用构建目录中的脚本。即我确信的工作是:

$ 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构建而不像这样安装它会浪费一些磁盘空间(当然,你可以rm *.o回收大部分内容 - 只是不要make clean这会擦除图书馆也是如此),但除此之外它只有优点:

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