我选择的arm 为啥生成的是/lib/ld-linux.so.3
时间: 2024-01-26 17:03:57 浏览: 81
生成的/lib/ld-linux.so.3是ARM Linux的动态链接器,它的作用是在程序运行时动态地将程序所需要的共享库加载到内存中,并将程序与这些共享库链接起来。ARM架构的Linux系统使用的动态链接器就是ld-linux.so.3。这个文件的名称中,ld表示链接器(linker),linux表示运行的操作系统是Linux,so表示这是一个共享库(shared object),3表示这是第三个版本的动态链接器。
相关问题
我选择的arm 为啥生成的是/lib/ld-linux.so.3,ledtest: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, BuildID[sha1]=c43c70408405b6c36d26eb923f4f7cf238ef5875, for GNU/Linux 3.2.0, not stripped可以打开这个文件吗
如果你的系统是基于ARMv6或ARMv7架构的,那么生成的动态链接器应该是/lib/ld-linux-armhf.so.3。如果你的系统是基于ARMv8架构的,那么生成的动态链接器应该是/lib/ld-linux-aarch64.so.1。至于你提到的ledtest这个文件,它的ELF头部中指定了它需要/lib/ld-linux-armhf.so.3这个动态链接器来执行,所以你需要在系统中安装这个动态链接器并具有执行权限才能运行ledtest。你可以尝试使用"./ledtest"命令来运行它。如果你遇到了权限问题,可以使用"chmod +x ledtest"命令来添加执行权限。
arm-linux-gnueabihf-如何指定生成的interpreter /lib/ld-linux.so.3
在使用arm-linux-gnueabihf-gcc等工具链编译链接程序时,可以通过在链接命令中使用"-Wl,--dynamic-linker=/path/to/ld-linux.so.3"选项来指定生成的可执行文件使用哪个动态链接器。具体的命令可以参考下面的示例:
```
arm-linux-gnueabihf-gcc -o myprog myprog.c -Wl,--dynamic-linker=/path/to/ld-linux.so.3
```
其中,/path/to/ld-linux.so.3应替换为你所需要的动态链接器的路径。这样,生成的可执行文件就会使用指定的动态链接器来执行。
阅读全文