arm-linux-gcc 参数:
0.arm-linux-gcc -o example example.c
不加-c、-S、-E参数,编译器将执行预处理、编译、汇编、连接操作直接生成可执行代码。
-o参数用于指定输出的文件,输出文件名为example,如果不指定输出文件,则默认输出a.out
1. arm-linux-gcc -c -o example.o example.c
-c参数将对源程序example.c进行预处理、编译、汇编操作,生成example.o文件
去掉指定输出选项"-o example.o"自动输出为example.o,所以说在这里-o加不加都可以
2.arm-linux-gcc -S -o example.s example.c
-S参数将对源程序example.c进行预处理、编译,生成example.s文件
-o选项同上
3.arm-linux-gcc -E -o example.i example.c
-E参数将对源程序example.c进行预处理,生成example.i文件
就是将#include,#define等进行文件插入及宏扩展等操作。
4.arm-linux-gcc -v -o example example.c
加上-v参数,显示编译时的详细信息,编译器的版本,编译过程等。
5.arm-linux-gcc -g -o example example.c
-g选项,加入GDB能够使用的调试信息,使用GDB调试时比较方便。
6.arm-linux-gcc -Wall -o example example.c
-Wall选项打开了所有需要注意的警告信息,像在声明之前就使用的函数,声明后却没有使用的变量等。
7.arm-linux-gcc -Ox -o example example.c
-Ox使用优化选项,X的值为空、0、1、2、3
8.arm-linux-gcc –static -o libexample.a example.c
静态链接库文件
arm-linux-ld 参数:
arm-linux-ld -Txxx.lds -o output_elf source_o
-T指定lds链接脚本
-o指定输出文件
arm-linux-objcopy 参数:
arm-linux-objcopy被用来复制一个目标文件的内容到另一个文件中.此选项可以进行格式的转换.
在实际编程的,用的最多的就是将ELF格式的可执行文件转换为二进制文件.
arm-linux-objcopy -O binary -S source_elf output_bin
-O 输出的格式
-S 不从源文件中复制重定位信息和符号信息到目标文件中
arm-linux-objdump 参数:
arm-linux-objdump -D -m arm xxx.elf > xxx.dis
-D 显示文件中所有汇编信息
-m machine (上面-m arm 指定生成arm架构的反汇编代码)