繁体   English   中英

分发使用wxWidgets的C ++ Linux应用程序的选项

[英]Options for distributing a C++ Linux application that uses wxWidgets

我正在使用一个使用wxWidgets的C ++ Linux应用程序,需要将其作为已编译的二进制应用程序进行分发。 项目负责人已指定我们要包括应用程序的所有依赖项,以便最终用户不需要安装任何东西来运行应用程序,只要它们已经安装了标准系统组件( libc等)。 我认为这个要求是最终用户要求的。 我知道这不是您可能认为的Linux应用程序的“正常”分发过程。

对于自身没有很多依赖项的简单库,这不是问题。 但对于wxWidgetswebkitgtk问题,这是WebView类(在应用程序中使用)所必需的。 webkitgtk本身有许多依赖项,它们可能有自己的依赖项,依此类推。 基本上,通过尝试将所有内容都包含在应用程序中,看起来我正在打开真正的蠕虫病毒,而项目中更高级的开发人员似乎也同意这一点。

所以我想知道,我有什么选择分发这样的应用程序? 我已经尝试搜索有关这方面的信息,而流行的观点似乎是让最终用户安装wxWidgets 这些是我遇到的选项:

  • 根据项目负责人的需要,将所有依赖项编译为共享库。 这样做的缺点是有许多库需要担心,这将导致严重的膨胀。
  • 要求最终用户安装wxWidgets (在GTKwebkitgtk )。 这里的缺点是用户必须安装多个依赖项,如果它们不在包管理器中具有上述适当版本的发行版上,这对他们来说可能是一个真正的麻烦。 这也意味着我们无法提供特别要求的东西。
  • 要求最终用户安装GTKwebkitgtk ,但不要安装wxWidgets 与上面相同的缺点,但具有较少的依赖性。 另一个缺点是,如果安装了不同版本的依赖项,则可能存在版本兼容性问题,而不是用于构建打包的wxWidgets库。

我对这些各种选择的利弊评估是否正确? 我有什么选择吗?

谢谢!

大卫,最好的解决方案可能是要求用户安装X11,GTK + {2,3}和WebKit-GTK。 wxWidgets可以与应用程序静态链接。

您可以要求用户将WebKit-GTK设置为至少版本XYZ,并且应满足要求。 将WebKit-GTK与其所有依赖项集成,特别是因为依赖于GTK +本身将非常困难。 所以如果你走这条路,你就会被搞砸了。

作为linux用户,我通过包管理器投票支持手动依赖安装。 它并不难,甚至可以自动完成,如果你提供包(不只是二进制)。 携带运行时可能会导致问题(例如Debian上的Steam)。 另一种选择是提供两种口味:全包和依赖性要求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM