我用arm-linux-gnueabihf-gcc -g -o ledtest ledtest.c编译的
时间: 2023-08-02 17:05:19 浏览: 108
根据你提供的信息,ledtest文件是使用arm-linux-gnueabihf-gcc编译的。这个命令是针对使用硬浮点的ARM平台进行编译的。如果你的目标平台不支持硬浮点,ledtest应用程序就无法运行。
如果你的目标平台不支持硬浮点,可以尝试使用arm-linux-gnueabi-gcc命令进行编译,这是针对使用软浮点的ARM平台进行编译的。
如果你的目标平台支持硬浮点,可以使用arm-linux-gnueabihf-gcc命令进行编译。在编译时,需要使用-g选项生成调试信息,使用-o选项指定输出文件名,例如:
```
arm-linux-gnueabihf-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”等信息。
相关问题
udo apt-get install gcc-arm-linux-gnueabihf Reading package lists... Done Building dependency tree Reading state information... Done gcc-arm-linux-gnueabihf is already the newest version (4:9.3.0-1ubuntu2). 0 upgraded, 0 newly installed, 0 to remove and 172 not upgraded. lxq@ubuntu:/$ gcc-arm-linux-gnueabihf -v gcc-arm-linux-gnueabihf: command not found
如果你已经确认在系统中安装了 `gcc-arm-linux-gnueabihf`,但是在终端中输入 `gcc-arm-linux-gnueabihf -v` 依然提示命令未找到,那么可能是因为 `gcc-arm-linux-gnueabihf` 的可执行文件路径没有被添加到环境变量中。你可以尝试将 `gcc-arm-linux-gnueabihf` 的可执行文件路径添加到 `PATH` 环境变量中,具体步骤如下:
1. 打开终端,输入以下命令打开 `.bashrc` 文件:
```
nano ~/.bashrc
```
2. 在文件末尾添加以下内容:
```
export PATH=$PATH:/usr/bin/arm-linux-gnueabihf
```
注意将路径 `/usr/bin/arm-linux-gnueabihf` 替换成实际的 `gcc-arm-linux-gnueabihf` 可执行文件所在的路径。
3. 按下 `Ctrl + X`,然后输入 `Y` 保存文件并退出。
4. 输入以下命令使修改后的 `.bashrc` 文件生效:
```
source ~/.bashrc
```
5. 再次尝试输入 `gcc-arm-linux-gnueabihf -v`,如果能够正常输出版本号,则说明添加环境变量成功。
arm-linux-gnueabihf-addr2line arm-linux-gnueabihf-gcc-9 arm-linux-gnueabihf-gcov-dump arm-linux-gnueabihf-objcopy arm-linux-gnueabihf-ar arm-linux-gnueabihf-gcc-ar arm-linux-gnueabihf-gcov-dump-9 arm-linux-gnueabihf-objdump arm-linux-gnueabihf-as arm-linux-gnueabihf-gcc-ar-9 arm-linux-gnueabihf-gcov-tool arm-linux-gnueabihf-ranlib arm-linux-gnueabihf-c++filt arm-linux-gnueabihf-gcc-nm arm-linux-gnueabihf-gcov-tool-9 arm-linux-gnueabihf-readelf arm-linux-gnueabihf-cpp arm-linux-gnueabihf-gcc-nm-9 arm-linux-gnueabihf-gprof arm-linux-gnueabihf-size arm-linux-gnueabihf-cpp-9 arm-linux-gnueabihf-gcc-ranlib arm-linux-gnueabihf-ld arm-linux-gnueabihf-strings arm-linux-gnueabihf-dwp arm-linux-gnueabihf-gcc-ranlib-9 arm-linux-gnueabihf-ld.bfd arm-linux-gnueabihf-strip arm-linux-gnueabihf-elfedit arm-linux-gnueabihf-gcov arm-linux-gnueabihf-ld.gold arm-linux-gnueabihf-gcc arm-linux-gnueabihf-gcov-9 arm-linux-gnueabihf-nm
这是arm-linux-gnueabihf交叉编译工具链中的一些常用工具,包括:
- addr2line:将地址转换成文件名和行号。
- ar:用于创建和修改静态库文件。
- as:汇编器。
- c++filt:将C++符号转换为人类可读的形式。
- cpp:C预处理器。
- dwp:用于处理多个ELF文件的链接器。
- elfedit:用于编辑ELF文件头和程序头表的工具。
- gcc:GNU C编译器。
- gcc-ar:用于创建和修改静态库文件的GNU C编译器。
- gcc-nm:列出目标文件中的符号。
- gcc-ranlib:向静态库文件中添加索引。
- gcov:代码覆盖率工具。
- gcov-dump:将gcov文件转换为人类可读的形式。
- gcov-tool:用于处理gcov数据文件的工具。
- gprof:分析程序的性能工具。
- ld:链接器。
- ld.bfd:使用BFD库的链接器。
- ld.gold:使用Gold库的链接器。
- nm:列出目标文件中的符号。
- objcopy:用于复制和转换目标文件的工具。
- objdump:反汇编器。
- ranlib:向静态库文件中添加索引。
- readelf:显示ELF文件的信息。
- size:显示目标文件的大小。
- strings:从目标文件中提取可打印的字符串。
- strip:从目标文件中删除符号表、调试信息等。
您可以根据需要选择适当的工具进行交叉编译和调试。
阅读全文