温习一波GCC
GCC
GCC是GNU Compiler Collection的缩写,跨平台编译器集合。
支持C,C++,Java等语言。
C的编译
1 | GCC main.c |
这一条指令直接生成可执行程序a.out,一步完事,不生成.s和.o文件
1 | GCC main.c -o Main |
这一条指定生成文件名为Main,也就是-o可以指定输出文件名。
一步步来
1 | GCC -S main.s -o main.s |
这一条生成main.s汇编源程序,也就是汇编。
1 | GCC -c main.c -o main.o |
这一条生成main.o目标文件,也就是执行编译和汇编两个步骤。
可以用.c或者预处理编译之后生成的.s文件。
1 | GCC main.o -o main |
这一条生成可执行程序main,最后一步:链接。
对于多个.c源文件的程序,也可以一步完成
1 | GCC main.c hello.c -o test |
或者一步步来
1 | GCC -c main.c -o main.o |
其他option
1 | GCC -E main.c -o main_mod.c |
预处理指令,去除注释,展开头文件,宏替换。
1 | GCC main.c -static -o main |
静态编译,包含所用到的所有的库。
END
这些只是目前我用到的。。。比较浅,主要还是用autoconf。
binutils的使用,静态库和动态库的生成改天再看。