Wxwidgets 在另一台计算机上发出 运行 二进制文件
Wxwidgets issue running binary on another computer
您好,当我在 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
即使在复制库时我仍然遇到问题。为什么它依赖于外部库,我不希望其他计算机要求安装这个库,我该如何解决这个问题?我想我可以尝试静态 link 它,但其他人建议你不要这样做。
您需要在将二进制文件复制到的任何机器上安装整个 wxWidgets runtime/shared 库。这就是使用 aptitude 的全部要点——每个二进制包都有一个随它一起安装的依赖项列表。
要克服这个问题,您需要静态 link 您的二进制文件。您目前正在使用共享 linking,正如您所注意到的,它依赖于外部库。 “.so”表示共享对象。您将不得不 link 反对静态归档库,通常以“.a”结尾。通常 aptitude 提供的开发包不提供这些,因此您可能必须自己编译 wxWidgets 才能提供这些。只需确保也静态 link 并编译所有 wxWidgets 下游依赖项。这是静态 linking 的主要缺点。
您还可以查看类似 Holy Build Box 的内容。
您好,当我在 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
即使在复制库时我仍然遇到问题。为什么它依赖于外部库,我不希望其他计算机要求安装这个库,我该如何解决这个问题?我想我可以尝试静态 link 它,但其他人建议你不要这样做。
您需要在将二进制文件复制到的任何机器上安装整个 wxWidgets runtime/shared 库。这就是使用 aptitude 的全部要点——每个二进制包都有一个随它一起安装的依赖项列表。
要克服这个问题,您需要静态 link 您的二进制文件。您目前正在使用共享 linking,正如您所注意到的,它依赖于外部库。 “.so”表示共享对象。您将不得不 link 反对静态归档库,通常以“.a”结尾。通常 aptitude 提供的开发包不提供这些,因此您可能必须自己编译 wxWidgets 才能提供这些。只需确保也静态 link 并编译所有 wxWidgets 下游依赖项。这是静态 linking 的主要缺点。
您还可以查看类似 Holy Build Box 的内容。