// -E 预处理 开发过程中可以确定某个宏
// -c 把预处理 编译 汇编 都做了,但是不链接
// -o 指定输出文件
// -I 指定头文件目录
// -L 指定链接库文件目录
// -l 指定链接哪一个库文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main()
{printf(" hello world\r\n");return 0;
}
//把C代码预处理化 可阅读 文本文件
gcc -E -o hello.cpp hello.c
//把所有宏展开
gcc -E -dM -o hello.cpp hello.c
//列出头文件目录,库目录(LIBRARY_PATH)
echo 'main(){}'| gcc -E -v -
// 把C代码生成汇编文件 可阅读 文本文件
gcc -x cpp-output -S -o hello.s hello.cpp
// 目标代码 得到二进制文件 没有链接
gcc -x assembler -c hello.s -o hello.o
// 链接成可执行文件 使用共享库
gcc -o hello hello.o // 使用静态编译 全部放到可执行文件
```c
gcc -o hello.static hello.o -static