![](/img/trans.png)
[英]Error while loading shared libraries: libbsoncxx.so._noabi: cannot open shared object file: No such file or directory
[英]error while loading shared libraries: libwx_gtk3u_core-3.1.so.3: cannot open shared object file: No such file or directory
我全新安装了 Ubuntu 18.04.4LTS 和 wxWidgets 3.1.4。 当我尝试执行 wxWidgets 二进制文件时: ./gpCalculator
我收到错误消息:
./gpCalculator: error while loading shared libraries: libwx_gtk3u_core-3.1.so.3: cannot open shared object file: No such file or directory
这是下面ldd./gpCalculator 的ldd./gpCalculator
:
linux-vdso.so.1 (0x00007ffcabd9c000)
libwx_gtk3u_core-3.1.so.3 => not found
libwx_baseu-3.1.so.3 => not found
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007faa0bf17000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007faa0bcff000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007faa0b90e000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007faa0b570000)
/lib64/ld-linux-x86-64.so.2 (0x00007faa0c524000)
任何建议或帮助将不胜感激。 这是一个学校项目。 gitub 存储库是https://github.com/alvindera97/Engineering-Grade-Pending-C-如果您想访问二进制文件本身和源代码。
谢谢期待!
您必须安装这些库。
错误说丢失(找不到。)
libwx_gtk3u_core-3.1.so.3 => not found
libwx_baseu-3.1.so.3 => not found
安装命令:
apt-get install libwxgtk-webview3.0-gtk3-0v5 libwxgtk-media3.0-gtk3-0v5
如果你想知道哪个 package 提供了一个文件,你可以安装和更新(作为 root):
root@desktop:~# apt-get install apt-file
root@desktop:~# apt-file update
并找到:
manuel@desktop:~/projects$ apt-file find wx_gtk3u
libwxgtk-media3.0-gtk3-0v5: /usr/lib/x86_64-linux-gnu/libwx_gtk3u_media-3.0.so.0
libwxgtk-media3.0-gtk3-0v5: /usr/lib/x86_64-linux-gnu/libwx_gtk3u_media-3.0.so.0.4.0
libwxgtk-media3.0-gtk3-dev: /usr/lib/x86_64-linux-gnu/libwx_gtk3u_media-3.0.so
libwxgtk-webview3.0-gtk3-0v5: /usr/lib/x86_64-linux-gnu/libwx_gtk3u_webview-3.0.so.0
libwxgtk-webview3.0-gtk3-0v5: /usr/lib/x86_64-linux-gnu/libwx_gtk3u_webview-3.0.so.0.4.0
libwxgtk-webview3.0-gtk3-dev: /usr/lib/x86_64-linux-gnu/libwx_gtk3u_webview-3.0.so
这为您提供了包: libwxgtk-media3.0-gtk3-0v5
, libwxgtk-webview3.0-gtk3-dev
其中出现了该名称。
如果您使用的是已编译的二进制文件(程序),则必须安装用于在原始 linux 安装(相同版本或更现代的版本)中编译该程序的库。
如果你不能安装那些,至少,Linux,你可以从源代码编译所有:库,程序等......
(一些评论后的解释。)
事实上,你正在使用编译后的程序,而我有完全相同的 output:
manuel@desktop:~/projects/Engineering-Grade-Pending-C- (master)$ ./gpCalculator
./gpCalculator: error while loading shared libraries: libwx_gtk3u_core-3.1.so.3: cannot open shared object file: No such file or directory
检查回购协议给出:
manuel@desktop:~/projects/Engineering-Grade-Pending-C- (master)$ l
total 8,1M
-rw-r--r-- 1 manuel manuel 230K jul 29 23:10 gp_and_cgpa_calculator.cpp
-rwxr-xr-x 1 manuel manuel 597K jul 29 23:10 gpCalculator*
-rw-r--r-- 1 manuel manuel 7,3M jul 29 23:10 gpCalculator.exe
-rw-r--r-- 1 manuel manuel 1,2K jul 29 23:10 README.md
gpCalculator
是找不到库的可执行文件。
问题不在于编译或分发,问题在于您永远不应该从您不了解和不信任的来源运行软件。 如果你想运行它,只需获取源代码,编译并使用它。
这个gpCalculator
可执行文件可能只是将您所有的硬盘驱动器信息发送给任何人。
话虽这么说,要运行该程序,您只需按照我所说的进行操作:安装缺少的库或编译并安装所有这些库。 (不需要分发任何东西。)
@曼纽尔
你好,
您不必编译和安装用于构建程序的库。
当你说你编译了 wxWidgets 3.1.4 时,这是否意味着你运行了:
configure <set_of_options>
make
make install
ldconfig
或者你只是跑了:
configure
make
现在,所有不同的 Linux 发行版(和 Unix 发行版)都有自己的存储库。 每个 *nix 发行版都有自己的方式从所述发行版中获取软件包。 每个 *nix 发行版与软件包的工作方式不同,在此发行版中将它们标记为stable
,以便用户进行升级。
因此,对于开发人员来说,创建不同的方式在 *nix 上分发应用程序“是一场噩梦”。 因此 *nix 开发人员可以创建分发脚本和/或要求 *nix 维护人员将他们的软件包含在存储库中。
这样分发脚本将处理程序的每个依赖项。 该脚本还将处理将所需库升级到较新版本的需要——这些库的维护者将不得不重新编译您的软件,确保它按预期工作,将其标记为稳定并完成它。 然后他们将适当地更新分发脚本。
最后 - 在 *nix 上分发不是你的任务,分发维护者的任务是编写/更新这样的分发脚本。 或者编写一个适当的文档/示例,以便您可以这样做并提交给分发维护者以将其包含在他们的 package 树中。
我希望现在更清楚了。
[编辑]
引用您对上一个答案的回应之一:
在这一点上,我不知道是否仍然可以运行同一个应用程序。 因为我有源代码和安装的 wxWidgets,所以我能够将二进制文件重新编译成一个新文件并运行程序,源代码是用 wxWidgets3.1.3 编写和编译的,但是我安装了 wxWidgets3.1.4 但我没有试图重新编译。 我只是想运行二进制文件。 如果我想在另一个 linux 安装上运行这个程序,这是否意味着我必须重新安装 wxWidgets 并重新编译程序? 我真的很困惑。 谢谢
[/编辑]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.