Gcc编译C程序常用选项
-o 指定目标文件名
-std=c99 用C99标准编译
-Wall 警告全开
-c 只编译不链接,生成中间文件
-g 生成调试信息
-O0 : 默认不优化(若要生成调试信息,最好不优化)
-O1 : 简单优化,不进行速度与空间的权衡优化;
-O2 : 进一步的优化,包括了调度。(若要优化,该选项最适合,它是GNU发布软件的默认优化级别;
-O3 : 鸡肋,兴许使程序速度更慢;
-funroll-loops : 展开循环,会使可执行文件增大,而速度是否增加取决于特定环境;
-Os : 生成最小执行文件;
-llibname 链接指定库
注意GCC在链接库的过程中对参数中库的顺序是有要求的,参数右侧的库会先于左边的库加载。
假如你要链接pthread库,编译命令可能是这样的:gcc -std=gnu99 -Wall -o server *.c -lpthread
但不能是这样的:gcc -std=gnu99 -Wall -lpthrad -o server *.c #-lpthread必须放在后面。