如果程序是交叉编译的,生成的程序可能在本机ldd时看不到依赖库。 可以执行下面命令,看其依赖项: readelf -d your_exe | grep NEEDED
1. ldd命令:ldd命令可以用来查看一个可执行文件所依赖的共享库。对于静态库,ldd命令会显示“not a dynamic executable”的错误信息。可以使用以下命令来使用ldd命令: $ ldd <可执行文件> 2. nm命令:nm命令可以用来列出一个目标文件或者静态库中的符号表。符号表中包含了这个目标文件或者静态库所定义和引用的符号。
ldd: warning: you do not have execution permission for `./main.o' not a dynamic executable test.c: ldd: warning: you do not have execution permission for `./test.c' not a dynamic executable test.h: ldd: warning: you do not have execution permission for `./test.h' lddlibc4: cannot...
1. ldd命令找不到文件: 如果ldd命令找不到文件,则可能是路径错误,需要检查路径是否正确,并确保指定的文件存在于该路径下。 2. ldd命令无输出结果: 如果运行ldd命令时没有输出任何结果,则说明该可执行文件或共享库文件没有任何依赖项。 3. ldd命令显示“not a dynamic executable”: 这可能是因为指定的文件不是...
ldd: warning: you do not have execution permission for `./main.c' not a dynamic executable main.o: ldd: warning: you do not have execution permission for `./main.o' not a dynamic executable test.c: ldd: warning: you do not have execution permission for `./test.c' ...
执行该命令后,LDD会列出该可执行文件所依赖的所有动态链接库文件的绝对路径。通常,输出结果会以“动态链接库名 => 动态链接库路径”格式进行显示。如果某个程序未指定动态链接库路径,LDD会显示“not a dynamic executable”。 通过LDD命令,我们可以确定一个程序是否存在库依赖问题,如果存在,则可以采取相应措施解决。常...
not a dynamic executable[taoge@localhost learn_ldd]$ 可以看到a.out依赖于libc.so.6这个库, 而这个库的路径为/lib/libc.so.6 我们继续看使用静态链接库的情形: 代码语言:javascript 复制 [taoge@localhost learn_ldd]$ ls main.c test.c test.h[taoge@localhost learn_ldd]$ gcc-c test.c[taoge@lo...
你可以通过两种方式来完成这项工作:通过创建一个 静态(static) 库或 一个 动态(dynamic) 库(也被称为 共享(shared) 库)。从创建和链接的方式来看,它们是两种不同类型的库。选择使用哪种方式取决于你的的具体场景。 在linux.cn 中,我演示了如何创建一个动态链接的可执行文件,这是一种更通用的方法。在这篇文...
gcc编译过程 预处理(进行宏替换)编译(生成汇编)汇编(生成机器可识别代码)链接(生成可执行文件或库文件)动静态库 动静态库的优缺点 gcc的使用 总结 前言:我们前面已经学习了使用vim来编写代码,我们也知道了,Linux下的工具都是各自独立的,vim用来编写代码,我们如何执行代码呢?这就需要用到gcc/g++了,那么...
//可以看出text的代码尺寸变得极大 $ ldd hello not a dynamic executable //说明没有链接动态库 ...