因此,我尝试使用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
# ldd /usr/bin/ffmpeg
linux-vdso.so.1 => (0x00007ffffc1fe000)
libavfilter.so.0 => not found
libpostproc.so.51 => not found
libswscale.so.0 => not found
libavdevice.so.52 => not found
libavformat.so.52 => not found
libavcodec.so.52 => not found
li
我正在尝试在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
我正在为Mac (10.9+)和Linux (Ubuntu18)构建我的节点模块(使用N-API)。当我将我的模块部署到远程机器(到Heroku)时,我得到: Error: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by /opt/atlassian/pipelines/agent/build/addons/Release-linux/module.node)
at Object.Module._extensions..node (internal/modules/cjs
我使用Centos 6.6,有一个共享库,生成的可执行文件和任何使用这个共享库的可执行文件都无法找到它,如ldd所见。我可以找到这个库:
$ locate libcs.so.1
/opt/cloudshield/lib/libcs.so.1
ldd显示以下内容:
$ sudo ldd /opt/cloudshield/lib/libcs.so.1
ldd: warning: you do not have execution permission for `/opt/cloudshield/lib/libcs.so.1'
linux-vdso.so.1 => (0x00
我知道这个问题不是很新鲜,但似乎我无法解决我自己的问题。
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
我有一个在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
我试图运行一个程序,但是当我执行它时,会出现以下错误:
./app: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by ./app)
起初,我读glibc是为了手动升级,但对于我这样的非高级用户来说,这似乎太冒险了。我的一个朋友告诉我关于chroot的事,但我不确定我必须遵循的步骤。有人能帮我吗?
我的系统信息:
uname -a:Linux hostName 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1+deb7u2 x86_64 GNU/Linux
D
我想要运行的软件之一需要GLIBC_2.27,而我看到的只是控制台上的错误:
/lib/x86_64-linux-gnu/libm.so.6: version 'GLIBC_2.27" not found
当我运行这个命令ldd --version时,我得到了这个输出:
ldd(Ubuntu GLIBC 2.23-0ubuntu11) 2.23
如何将GLIBC更新为2.27并消除上述错误?
我正在交叉编译一个嵌入式设备的应用程序(Moxa 8100),我遇到了GLIBC的版本问题。
我安装了Debian 9(按照嵌入式设备供应商的指示),并使用了arm-linux工具链。当在设备上运行我的构建时,上面写着
moxa@Moxa:~$ ./fabs-uc8100 -h
./fabs-uc8100: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.17' not found (required by ./fabs-uc8100)
./fabs-uc8100: /lib/arm-linux-gnueabihf/libc.s
我有点困惑,因为我不明白为什么会发生这种情况:我记得的系统上的最后一次变化是
为旧的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
前几天,我遇到了一个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