gcc参数选项整理
参数
-o 输出文件名
gcc test.c -o test
将gcc的处理结果输出到test文件中。本例中输出可执行文件。
-E 输出预处理文件
gcc -E test.c -o test.i
将预处理输出到test.i文件中。在大型项目中,可能各个宏的值不容易从代码里面直接看出来,通过-E参数,可以全部展开。
-S 输出汇编文件
gcc -S test.i -o test.S
gcc -S test.c -o test.S
将预处理文件test.i,或者源代码文件test.c
,转出汇编文件test.S。
-c 输出编译中间文件
gcc -c test.S -o test.o
gcc -c test.i -o test.o
gcc -c test.c -o test.o
将汇编文件test.S
,或者预处理文件test.i
,或者源代码文件test.c
,编译成输出文件test.o;再将输出文件编译成可执行文件test。
无参数 输出可执行文件
gcc test.c -o test
gcc test.S -o test
gcc test.i -o test
gcc test.o -o test
-O
gcc -O1 test.c -o test
使用优化级别1编译程序。级别1~3,越大优化越多,编译时间越长。也可以不带数字,默认是1。
-Dmacro
gcc -DNO_FUNCTION test.c -o test
相当于test.c中添加宏定义#define NO_FUNCTION 1
gcc -DCPU_NUM=4 test.c -o test
相当于test.c中添加宏定义#define CPU_NUM 4
gcc -DCPU_NUM="4" test.c -o test
与上相同,相当于定义#define CPU_NUM 4
gcc -DCPU_NUM=\"4\" test.c -o test
定义一个字符串宏,相当于#define CPU_NUM "4"
-Wall
生成所有警告信息
-lxx -Lxx -Ixx
gcc test.c -lstr -L/path/lib -I/path/include -o test
表示链接libstr.so库,库所在路径为/path/lib,头文件所在路径为/path/include
-g
gcc -g test.c -o test
生成gbd的调试信息,可以通过gdb test
跟踪调试
其他配置
库路径
-
/etc/so.ld.conf
中添加默认库路径,然后执行ldconfig
-
/etc/ld.so.conf
中添加默认库路径,然后执行ldconfig
-
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/XXX
,当前终端生效