c++ - 加载共享库时出错:libwx_gtk3u_core-3.1.so.3:无法打开共享对象文件:没有这样的文件或目录
问题描述
我全新安装了 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
下面的输出:
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
如果您想知道哪个包提供了文件,您可以安装和更新(以 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
它为您提供了 packages: libwxgtk-media3.0-gtk3-0v5
,libwxgtk-webview3.0-gtk3-dev
其中出现了该名称。
如果您正在使用已编译的二进制文件(程序),则必须安装用于在原始 linux 安装中编译该程序的库(相同版本,或者通常更现代。)
如果你不能安装这些,至少在 Linux 上,你可以从源代码编译所有内容:库、程序等......
(一些评论后的解释。)
实际上,您正在使用已编译的程序,而我的输出完全相同:
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
weregpCalculator
是找不到库的可执行文件。
问题不在于编译或分发,问题在于您永远不应该从您不知道和信任的来源运行软件。如果你想运行它,只需获取源代码,编译并使用它。
这个gpCalculator
可执行文件可能只是将您所有的硬盘信息发送给任何人。
话虽如此,要运行该程序,您只需按照我说的做:安装缺少的库或编译并安装所有库。(不需要分发任何东西。)
推荐阅读
- mysql - 安装mysql时文件丢失
- python - 如何使用 Flask-Migrate 轻松更改列?
- sql - 以纳秒为单位的时间戳列上的 Hive 窗口函数范围
- mysql - 当一条路线当前正在向数据库插入大量数据时,如何使所有其他路线正常工作?
- java - 如何在 TranslateAnimation 中获得位置?
- angular - 减少高图表中 X 轴上的数据点数量
- node.js - 错误 [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main 在 /app/node_modules/@babel/helper-compilation-targets/package.json 中解析
- javascript - React 中的条件类名?
- angular - 如何在 docker env 中使用 ngnix 反向代理通信 UI 和后端应用程序
- python - Python NameError - 名称未定义