GCC
编译工具链
- arm-linux-
- arm-none-eabi-
- arm-elf-
- arm-linux-guneabi-
交叉编译工具链网站
arm 官网提供的交叉编译工具链
几种交叉编译工具链的不同
gcc 常用配置项
配置项 | 描述 | 使用 |
---|---|---|
-o | 指定输出文件类型 例如 .s .i 文件 | gcc -o main main.c |
-E | 生成预处理文件 .i | gcc main.c -E -o main.i |
-S | 编译后即停止,不进行汇编,生成汇编语言文件 .s | gcc main.c -S -o main.s |
-c | 预处理、编译、 汇编,但不进行链接,生成目标文件 .o | gcc main.c -c -o main.o |
-I | 大写的 i 表示添加头文件路径 | gcc main.c -o main -I=…/inc |
-L | 表示添加库Lib路径 | gcc main.c -o main -I=./inc -L=./lib |
-l | 小写l,表示具体lib文件名,例如有库libjpeg.so或者libm.a | gcc main.c -o main -I=./inc -L=./lib -l=jpeg -lm |
-D | 定义宏 | gcc -D HELLO=0 -o main main.c |
-w | 关闭编译时的警告 | gcc -w main.c -o main -I=./inc -L=./lib -l=jpeg -lm |
-W/-Wall | 输出所有警告信息,可一起使用 | gcc -W -Wall main.c -o main -I=./inc -L=./lib -l=jpeg -lm |
-g | 调试选项,可以配合 gdb 工具 | gcc -g main.c -o main -I=./inc -L=./lib -l=jpeg -lm |
-O/-O1/-O2 | 优化选项,-O0不优化,默认-O进行优化 | gcc -g main.c -O2 -o main -I=./inc -L=./lib -l=jpeg -lm |
-Wl,–as-needed | 检查链接,加载必要的链接库 | gcc -Wl,–as-needed main.c -o main -I=./inc -L=./lib -l=jpeg -lm |
-Wl, --no-as-needed | 将用户指定的链接库完全写入可执行文件中 | gcc -Wl,–no-as-needed main.c -o main -I=./inc -L=./lib -l=jpeg -lm |
-static | 生成静态链接库 | gcc -w -static hello.c -o libhello.a |
-shared | 生成动态链接库 | gcc -w -shared hello.c -o libhello.so |