我正在尝试在Solaris 11.3和gcc 4.8.2的基础上增加1.69。然后构建就完成了,我看到(用ldd libname.so)链接器使用相对路径在动态段标签中需要bin.v2/libs/atomic/build/gcc-4.8.2/release/threading-multi/visibility-hidden/libboost_atomic.so.1.69.0,这不是很好。我希望链接器只使用libname,没有任何路径(绝对路径或相对路径)。我怎么能设置短名字链接?
So: solaris的ldd和RHEL 6的ldd
Solaris
ldd libboost_thread.so
因此,我尝试使用Perl从运行一些基本的Linux命令中捕获错误消息。例如,我尝试在运行ldd命令时捕获STDERR: # The stderr_file already exists
my $cmd = "ldd $file 2>$stderr_file";
my $output = `$cmd`; 但是,即使ldd命令的输出确实包含诸如ldd: warning: you do not have execution permission for之类的错误消息,它也不会将它们打印到$stderr_file中,我想知道为什么。 然后,我尝试自己运行命令:ldd /some
我有一个在Ubuntu (12.04)上编译很好的程序,但是由于链接错误,它无法运行。例如libX11.so.6是找不到的,但是它显然在
/usr/lib/arm-linux-gnueabihf
ldconfig -v shows it as well
奇怪的是,当我将LD_lib_PATH=/usr/lib/arm-gnueabihf/传递给ldd (在共享库之后)时,我得到消息
ldd: LD_LIBRARY_PATH=/usr/lib/arm-linux-gnueabihf/: No such file or directory
而这个目录显然存在。会有什么问题吗?我运行了sudo l
我无法用python加载共享对象库。我尝试将LD_LIBRARY_PATH设置为someObject.o所在的位置,当我使用非sudo命令运行python脚本时,这是可行的,但是当我使用sudo时,会遇到链接错误。
OSError: bbumintflib.o: cannot open shared object file: No such file or directory
有人知道如何将.o文件链接到.so文件吗?
使用ldd,我知道.so找不到.o文件。
>>>ldd someSharedObject.so
linux-vdso.so.1 (0x00007ffca69a
前几天,我遇到了一个linux命令,它让我看到一个程序希望在哪里找到它的库。对于不那么流行或专有的软件来说,解决库依赖问题是非常有用的。我使用了ldd,它提供了非常丰富的信息,但遗漏了一条对我至关重要的信息:
ldd -v ./my_executable为my_executable可以链接的库提供了很好的信息。但对于无法链接/查找的信息,ldd只提供如下信息:
<a_library_name.so.version> => not found
我想要的不是“找不到”,而是想看看
not found at /path/to/<a_library_name.so.versio
所以当我试图编译一个代码时,我会得到这个错误。不知道链接需要去哪里。
/home/will/WRF/miniconda3/envs/ncl_stable/bin/../lib/gcc/x86_64-conda-linux-gnu/10.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/will/WRF/Libs/NETCDF/lib/libnetcdf.so: undefined reference to `pow@GLIBC_2.29'
collect2: error: ld returned 1 exit status
l
在Linux上,我正在构建一个以前与静态库( C++ )链接的可执行文件,我已经更新了构建,以便它现在可以动态地链接到这个库(.so)。我想确认这个库中的代码不再静态地链接到可执行文件中。我希望能够通过比较静态链接和动态链接的可执行文件的nm输出来确认这一点,但是两者之间有很多不同,如果有更好的方法推荐,那么手动确认这个way...wondering将是一种努力。
我知道这个问题不是很新鲜,但似乎我无法解决我自己的问题。
ldd生成以下输出
u123@PC-Ubuntu:~$ ldd /home/u123/Programme/TestPr/Debug/TestPr
linux-vdso.so.1 => (0x00007ffcb6d99000)
libcsfml-window.so.2.2 => not found
libcsfml-graphics.so.2.2 => not found
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc
我有点困惑,因为我不明白为什么会发生这种情况:我记得的系统上的最后一次变化是
为旧的porject安装了g++5 (已删除)
apt自动清洗
删除 ldconfig缓存(猜这就是原因)
现在我不能启动一些应用程序。Ldd告诉我它“不是一个动态的可执行文件”
igor@Linbox:/lib/i386-linux-gnu$ ldd libssl.so.1.0.0
is not a dynamic executable
igor@Linbox:/lib/i386-linux-gnu$ ldd libselinux.so.1
is not a dynamic executabl
我安装了sudo apt install gparted和sudo apt install -f。当我输入sudo gparted时,它告诉我:
Unit -.mount does not exist, proceeding anyway.
/usr/sbin/gpartedbin: error while loading shared libraries: libglibmm-2.4.so.1: cannot open shared object file: No such file or directory
我正在使用Ubuntu18.04LTS,这不是我第一次遇到这样的库相关问题(参见我