ledtest: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, BuildID[sha1]=a0dd283b33bd743d5b239f48a26183d3c60ac4c4, for GNU/Linux 3.2.0, with debug_info, not stripped重新编译后,是否是可执行文件
时间: 2024-03-17 17:40:34 浏览: 195
根据你提供的信息,重新编译后的ledtest文件类型是共享对象文件,而不是可执行文件。共享对象文件一般是共享库或动态链接库,而不是可执行文件。你需要检查编译命令是否正确,是否生成了可执行文件。
在编译时,需要使用-g选项生成调试信息,使用-o选项指定输出文件名,例如:
```
arm-linux-gnueabi-gcc -g -o ledtest ledtest.c
```
如果编译成功,会在当前目录下生成一个名为ledtest的可执行文件。使用命令file ledtest可以查看文件类型,应该显示为“ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, not stripped”等信息。
如果重新编译后仍然无法生成可执行文件,可以检查gcc版本和交叉编译工具链是否正确,并检查编译选项是否正确。
相关问题
ledtest: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, BuildID[sha1]=3b88532b1dfbfb5b970f4932889720799a090711, for GNU/Linux 3.2.0, stripped
这不是一个问题,这是一个关于某个文件的描述。这是一个针对 ARM 架构的 ELF 文件,是一个动态链接的共享对象,需要 /lib/ld-linux-armhf.so.3 解释器。它的 BuildID 是 3b88532b1dfbfb5b970f4932889720799a090711,适用于 GNU/Linux 3.2.0,已经被剥离了符号表信息。如果你有任何与此文件相关的问题,可以告诉我。
jia@jia-VirtualBox:~/linux/f1c200s/linux_kernel/linux-4.14.0+driver/led$ arm-linux-gnueabihf-gcc -o ledtest ledtest.c jia@jia-VirtualBox:~/linux/f1c200s/linux_kernel/linux-4.14.0+driver/led$ file ledtest ledtest: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, BuildID[sha1]=2e2a5d57ab5ad18d72d855e10d88aaf24dca5e18, for GNU/Linux 3.2.0, not stripped原因,为啥不是共享文件
根据你提供的信息,重新编译后生成的ledtest文件依然是共享对象文件。这可能是因为交叉编译工具链使用了默认的编译选项,而默认的编译选项是生成共享对象文件。你可以尝试使用静态链接的方式重新编译,这样可以生成可执行文件,命令如下:
```
arm-linux-gnueabihf-gcc -o ledtest ledtest.c -static
```
在命令中加入-static选项,就可以生成静态链接的可执行文件。
如果你需要调试生成的可执行文件,可以在编译命令中加入-g选项,命令如下:
```
arm-linux-gnueabihf-gcc -o ledtest ledtest.c -static -g
```
这样生成的ledtest文件就包含了调试信息,可以用gdb进行调试。
阅读全文