-g 产生调试信息
-E 只做预处理 不会产生输出信息
-S 做预处理和编译 生成汇编程序 .s
-c 预处理和编译和汇编,不链接 生成目标文件 .o
-o 指定输出的目标文件
-Ixxx 指定搜索头文件的目录(include)
-ixxx 指定用xxx头文件 (xxx.h)
-Lxxx 搜索库的路径(library)
-lxxx 指定用xxx库编译(xxx.lib xxx.dll)
-static 使用静态库,加载到自己的内存空间 静态链接(.lib .a) 这个一般是自己写的c文件或库之间的引用
-share 使用动态库, 可以引用已存在内存中的函数或库,不需要加载到自己的内存空间中 动态链接(.dll .so) 这个一般是系统库的引用
-Wl 传递给ld链接的参数
-shared 生成动态链接库
预处理 gcc -E xxx.c -o xxx.i
编译 gcc -S xxx.i -o xxx.s
汇编 gcc -c xxx.s -o xxx.o
链接 gcc xxx.o -o xxx