Wxwidgets在另一台计算机上运行二进制文件

时间:2017-10-11 12:16:40

标签: 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

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

1 个答案:

答案 0 :(得分:0)

您需要在将二进制文件复制到的任何计算机上安装整个wxWidgets运行时/共享库。这是使用aptitude的重点 - 每个二进制包都有一个随之安装的依赖项列表。

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

您还可以查看Holy Build Box之类的内容。