如何创建没有外部依赖关系的wxWidgets应用程序?

时间:2015-07-19 13:47:29

标签: linux compilation dependencies cross-platform wxwidgets

请原谅任何非技术术语,因为我对软件开发非常陌生,并且仍然试图了解库如何工作和使用。

我正在使用Cinnamon Desktop运行Linux Mint 17.1。

我将wxWidgets的源代码下载到本地项目文件夹中,然后执行如下操作(从基本wx目录开始):

  • mkdir buildgtk
  • cd buildgtk
  • ../ configure --with-gtk
  • 使

(这些是wxWidgets库附带的install.txt中提供的说明)。我第一次尝试这个,我收到错误,指出无法找到GTK +开发文件。我用过:

  

sudo apt-get install libgtk2.0-dev

获取它们,然后重试安装。这次它奏效了。但是,在执行" make"命令(导致很多代码很快通过终端,所以我没有时间复制确切的短语)显示的几个项目看起来像:

  

(nameOfPackage)从哪里来? (SYS)

或类似的东西。例如,我相信它说PNG包,JPEG包和其他一些东西都是从" sys"我认为这意味着它是从我的计算机上的共享库中提取的。

如果我想创建一个真正的便携式应用程序,如何编译wxWidgets库而不包含所有这些外部依赖项?非常感谢任何帮助,因为我仍然试图理解实际编译过程,目标文件等的所有复杂性。

1 个答案:

答案 0 :(得分:0)

您将无法完全静态链接所有内容。除非您静态链接GTK +本身(由于技术原因不建议也会产生许可影响),您也不应该静态链接GTK使用的libpng

对于其他图书馆,例如regexexpatlib{jpeg,tiff},您可以使用--with-xxx=builtin配置选项与wxWidgets捆绑的版本进行静态链接。

在实践中,通常的解决方案是建立一个相当旧的系统,因为所有较新的系统都将与之兼容。

P.S。配置输出存储在config.log中,您还应该能够使用终端回滚缓冲区来查看输出过快的输出。当然,您始终可以将配置输出重定向到tee(1),然后使用less更轻松地查看它。