GCC(GNU Compiler Collection)编译器提供了许多选项来控制编译过程。以下是一些常用的GCC编译选项及其设置方法:
-c:只编译源文件,生成目标文件(.o
),不进行链接。
gcc -c main.c
-o:指定输出文件的名称。
gcc -o myprogram main.c
-Wall:开启所有常见的警告信息。
gcc -Wall -o myprogram main.c
-Wextra:开启额外的警告信息。
gcc -Wall -Wextra -o myprogram main.c
-g:生成调试信息,便于使用调试器(如gdb)。
gcc -g -o myprogram main.c
-O1, -O2, -O3:优化级别,从低到高分别是1、2、3。-O2
通常是默认的优化级别。
gcc -O2 -o myprogram main.c
-std:指定C语言标准,如c99
, c11
等。
gcc -std=c99 -o myprogram main.c
-l:链接指定的库,如-lm
链接数学库。
gcc -o myprogram main.c -lm
-L:指定库文件的搜索路径。
gcc -o myprogram main.c -L/path/to/lib -lm
-I:指定头文件的搜索路径。
gcc -o myprogram main.c -I/path/to/include
-static:静态链接所有库。
gcc -static -o myprogram main.c
-shared:生成共享库。
gcc -fPIC -shared -o libmylib.so main.c
-fPIC:生成位置无关代码,用于共享库。
gcc -fPIC -c main.c
gcc -shared -o libmylib.so main.o
-D:定义宏。
gcc -DDEBUG -o myprogram main.c
-E:只进行预处理,不编译、汇编或链接。
gcc -E main.c -o main.i
假设你有一个简单的C程序main.c
,你想编译并生成一个可执行文件myprogram
,同时开启所有警告和调试信息:
gcc -Wall -g -o myprogram main.c
如果你想生成一个共享库libmylib.so
,可以使用以下命令:
gcc -fPIC -c main.c
gcc -fPIC -shared -o libmylib.so main.o
通过这些选项,你可以灵活地控制GCC的编译过程,以满足不同的需求。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: Python版本升级在CentOS上如何操作