c++ - Wxwidgets 问题在另一台计算机上运行二进制文件

标签 c++ wxwidgets

您好,当我在 Linux 上构建我的 wxWidgets GUI 应用程序时,构建工作正常。我什至可以运行它并且它按预期工作。当我将二进制文件复制到另一台 Ubuntu 计算机并尝试运行它时,出现此错误:

./app2: error while loading shared libraries: libwx_baseu_unofficial-3.1.so.0: cannot open shared object file: No such file or directory

即使在复制库时我仍然遇到问题。为什么它依赖于外部库,我不希望其他计算机要求安装这个库,我该如何解决这个问题?我想我可以尝试静态链接它,但其他人建议您不要这样做。

最佳答案

您需要在您将二进制文件复制到的任何机器上安装整个 wxWidgets 运行时/共享库。这就是使用 aptitude 的全部要点——每个二进制包都有一个随它一起安装的依赖项列表。

为了克服这个问题,您需要静态链接您的二进制文件。您目前正在使用共享链接,正如您所注意到的,它依赖于外部库。 “.so”表示共享对象。您必须链接静态存档库,通常以“.a”结尾。通常 aptitude 提供的开发包不提供这些,因此您可能必须自己编译 wxWidgets 才能提供这些。只需确保也静态链接和编译所有 wxWidgets 下游依赖项。这是静态链接的主要缺点。

您还可以查看类似 Holy Build Box 的内容.

关于c++ - Wxwidgets 问题在另一台计算机上运行二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46688008/

相关文章:

c++ - Qt - 制作一个与 QGraphicsView 重叠的面板

c++ - 我如何清除状态栏文本 wxwidgets C++

c++ - 在 WxWidgets 中使用位图

c++ - 为什么需要这种明确的范围解析?

C++:如何在两个不同的重载函数中使用具有两个不同名称的相同数据类型?

c++ - 将模板函数传递给另一个采用 typedef 参数的函数

c++ - 在带有 Eclipse 的 Linux 中是否有 wxwidgets 的图形用户界面设计器?

c++ - 这保证是一个安全的类型转换吗?

python - 是否可以从 wxPython 中的 GridSizeEvent 获取新的列大小?

c++ - 编译并链接 wxGraphicContext 与 MingW