arm-linux-gcc 是gcc编译器 ,在x86 linux平台上编译出运行在ARM平台上的代码 。
首先介绍下GCC编译器的工作过程,编译过程分为四个阶段:
- 预处理(Pre-Processing)
- 编译(Compiling)
- 汇编(Assembling)
- 链接(Linking)
Linux程序员可以根据自己的需要让 GCC在编译的任何阶段结束,以便检查或使用编译器在该阶段的输出信息,或者对最后生成的二进制文件进行控制,以便通过加入不同数量和种类的调试代码来为 今后的调试做好准备。和其它常用的编译器一样,GCC也提供了灵活而强大的代码优化功能,利用它可以生成执行效率更高的代码。
以文件example.c为例说明它的用法
arm-linux-gcc -o example example.c
不加-c、-S、-E参数,编译器将执行预处理、编译、汇编、连接操作直接生成可执行代码。
-o参数用于指定输出的文件,输出文件名为example,如果不指定输出文件,则默认输出a.out
arm-linux-gcc -c -o example.o example.c
-c参数将对源程序example.c进行预处理、编译、汇编操作,生成example.o文件
去掉指定输出选项"-o example.o"自动输出为example.o,所以说在这里-o加不加都可以
arm-linux-gcc -S -o example.s example.c
-S参数将对源程序example.c进行预处理、编译,生成example.s文件
-o选项同上
arm-linux-gcc -E -o example.i example.c
-E参数将对源程序example.c进行预处理,生成example.i文件(不同版本不一样,有的将预处理后的内容打印到屏

本文详细介绍了GCC编译器的工作过程,包括预处理、编译、汇编和链接四个阶段,并通过实例展示了如何使用arm-linux-gcc在x86 Linux平台上编译ARM平台的代码。还列举了各种编译选项,如-o、-c、-S、-E、-v、-g、-Wall、-Ox、-I、-L等,以及它们的功能和用途,帮助开发者更好地理解和控制编译过程。
最低0.47元/天 解锁文章
884

被折叠的 条评论
为什么被折叠?



