我对 Linux 和 Ubuntu 非常陌生,我已经将我的简单游戏引擎移植到了 linux。引擎位于 .so 文件中并链接到可执行文件。
我无法运行我的可执行文件,因为它说它找不到 Engine.so 文件(在终端中运行时)。
因此,如果我在 Ubuntu 上进行开发,我怎样才能获得可执行文件来查找库?
第二个问题是分发应用程序时如何安装 .so 文件?我认为它们不只是与 Windows 中的 exe 放在同一目录中?那么它们是如何安装的呢?
只是确保我做对了 - 我打电话
ldd /path/to/executable
Run Code Online (Sandbox Code Playgroud)
它返回“不是动态可执行文件”。这意味着它不依赖于其他库,对吗?如果是这样,是否意味着它可以转移到另一个 Ubuntu 盒子而无需担心依赖关系?
$ sudo apt-get install libffi libffi5-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libffi
E: Unable to locate package libffi5-dev
Run Code Online (Sandbox Code Playgroud)
另一个尝试:
$ sudo apt-get install libffi5 libffi-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libffi5
Run Code Online (Sandbox Code Playgroud)
和
$ cat /etc/issue
Ubuntu 12.04.4 LTS \n \l
Run Code Online (Sandbox Code Playgroud)
我现在该怎么办?
我刚开始使用 Lubuntu,我刚刚安装了 DaVinci Resolve 来进行视频编辑。
但是当我单击桌面上的图标时,加载符号出现并停止。当我在控制台中运行它时,我收到此错误消息:
加载共享库时出错:libpng12.so.0:无法打开共享对象文件:没有这样的文件或目录
这有点超出我的范围。有什么帮助吗?
我最近安装了 Ubuntu 18.04.1。现在,当我尝试运行 mpi Fortran 代码时,加载共享库时出错:libgfortran.so.3并且代码未执行。我尝试通过删除软件重新安装gfortran、mpich和gcc,但我无法删除它们,sudo apt-get remove gfortran因为当我被问及是否要继续时删除会中止。当我尝试制作可执行文件时,会为该可执行文件生成未知的文件类型。
在阅读了我上一个问题的答案后,我得出的结论是,以下问题的答案正是我真正想要的:
特定版本的内核是否需要特定版本的 libc 才能正常运行?
基本上我的问题源于在我的 12.04 ubuntu 上构建应用程序并尝试在 8.04 上运行它。从那以后,我从这个和其他 stackexchange 论坛中了解到,导致这些问题的是 libc 的向后兼容性。因此,我可能天真地尝试做的是构建与我的目标上存在相同版本的 libc,然后在构建应用程序时链接到我的主机上。然后在理想的世界中,当我将其复制到主机时,已链接到“正确”的 libc,它应该可以工作(至少在我的脑海中)。我完全找不到在我的系统上安装旧 libc 的方法,并想知道每个版本是否都与内核版本紧密绑定,因此出现了上述问题。
如何libdwarf.so在 Ubuntu 上安装?运行可执行文件时出现此错误。
加载共享库时出错:libdwarf.so:无法打开共享对象文件:没有这样的文件或目录。
我们知道ld.so在环境变量指定的目录中搜索库$LD_LIBRARY_PATH,但普通用户可以运行:
export LD_LIBRARY_PATH=dir1:dir2...
Run Code Online (Sandbox Code Playgroud)
他们可以将受感染的库保存在优先级高于原始路径的路径中,以便ld.so在ld.so.cache.
这是一个风险吗?
我们如何禁止普通用户写入这个环境变量?
有谁知道我在哪里可以得到这个库: libQtWebKit.so.4
尝试启动Clipgrab 时,我现在收到以下错误:
$ /home/pst007x/Applications/ClipGrab/clipgrab-3.6.1
/home/pst007x/Applications/ClipGrab/clipgrab-3.6.1: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
Ubuntu 16.04 LTS 64 位
我下载了 DOOM BFA 版本 1.2.8,但运行后我收到消息:
./DoomBFA:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:找不到版本“GLIBCXX_3.4.29”(./DoomBFA 需要)
有没有办法在 ubuntu 20.04 中更新这些库?