hello: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, BuildID[sha1]=813391de8291c142b3eb24af1f1cd7d391ae672b, for GNU/Linux 3.2.0, not stripped生成文件arm9用不了
时间: 2024-03-21 15:42:51 浏览: 110
您提供的信息显示生成的可执行文件是一个共享对象(shared object),而不是一个可执行文件。共享对象是一种可执行文件类型,通常用于动态链接库(DLL)或共享库(shared library),它们可以被多个程序共享和重用。
在ARM9平台上执行共享对象是不可行的,因为ARM9平台上的应用程序需要的是可执行文件,而不是共享对象。
为了生成可在ARM9平台上执行的可执行文件,需要使用静态链接方式,确保所有的库都被链接到可执行文件中,而不是在运行时动态加载。可以通过在编译时使用-static选项来指定静态链接。例如,在编译hello.c文件时,可以使用以下命令:
```
arm-linux-gnueabihf-gcc -static -o hello hello.c
```
其中,-static选项指定使用静态链接方式,-o选项指定生成的可执行文件名为hello,hello.c为源代码文件名。
生成的可执行文件将包含所有必要的库,可以在ARM9平台上执行。
相关问题
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,已经被剥离了符号表信息。如果你有任何与此文件相关的问题,可以告诉我。
./mqtt_client: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 2.6.16, not stripped
根据你提供的信息,可以看出该mqtt_client程序是一个32位的ARM架构可执行文件,需要在支持该架构的Linux系统上运行。如果你尝试在不支持该架构的Linux系统上运行该程序,就会出现上述的"cannot execute binary file"错误。
因此,你需要在一个支持ARM架构的Linux系统上运行该程序。如果你的当前系统不支持ARM架构,可以考虑在虚拟机或者容器中运行一个支持ARM架构的Linux系统,然后在其中运行mqtt_client程序。注意,如果你在虚拟机或者容器中运行程序,需要确保虚拟机或者容器的操作系统支持ARM架构。
另外,如果你需要在当前系统上运行mqtt_client程序,也可以考虑重新编译该程序,以生成适用于当前系统架构的二进制文件。
阅读全文