-s
这个参数会把符号表从最终的可执行文件中删除。没有符号表,你就不能用gdb调试了,但是程序会更小
-O0
不做任何优化,这是默认的编译选项
-c
只编译不链接,产生.o文件,就是obj文件,不产生执行文件
-w
关闭所有警告信息
-W和-Wall
开启所有警告,一般一起使用
-fmessage-length=0
默认情况下,gnu工具链编译过程中,控制台输出的一行信息是不换行的,这样,当输出信息过长时(如编译错误时的信息),会导致你无法看到完整的输出信息,加入-fmessage-length=0后,输出信息会根据控制台的宽度自动换行,这样就能看全输出信息了
-I
指定头文件目录