一、gcc和arm-linux-gcc的常用选项
-
常用选型
-v 查看gcc编译器的版本,显示gcc执行时的详细过程
-o Place the output into 指定输出文件名为file,这个名称不能跟源文件名同名
-
-E Preprocess only; do not compile, assemble or link
只预处理,不会编译、汇编、链接
-
-S Compile only; do not assemble or link
只编译,不会汇编、链接
-
-c Compile and assemble, but do not link
编译和汇编,不会链接
-
举例
//举例一:
gcc hell.c /* 输出一个a.out,然后./a.out来执行该应用程序 */
gcc -o hello hello.c /* 输出hello,然后./hello来执行该应用程序(推荐使用这种方式) */ //举例二:
gcc -E -o hello.i hello.c /* 对hello.c文件进行预处理,获得hello.i文件 */
gcc -S -o hello.s hello.i /* 对hello.i文件进行编译,获得hello.s汇编文件 */
gcc -c -o hello.o hello.s /* 对hello.s进行汇编,获得hello.o(OBJ文件)目标文件 */
gcc -o hello hello.o /* 对hello.o进行链接,获得 hello可执行文件*/ -
总结
1)输入文件的后缀名和选项共同决定gcc到底执行那些操作。
2)在编译过程中,除非使用了-E、-S、-c选项(或者编译出错阻止了完整的编译过程),否则最后的步骤都是链接。