C语言的编译与调试
Posted *乐途*
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言的编译与调试相关的知识,希望对你有一定的参考价值。
gcc 编译C语言的
g++ 编译C++语言的
gcc与g++编译选项
-ggdb -ggdblevel 为调试器 gdb生成调试信息。Jevel可以为1,2,3,默认值为2。 -o outfile输出到指定的文件 -E仅作预处理(code.i,不进行编译、汇编和链接。 -g-glevel 生成操作系统本地格式的调试信息。-g和-ggdb汇编和链接并不太相同,-g会生成gdb 之外的信息。level取值同上。 -S仅编译到汇编语言(code.s),不进行汇编与链接 -c编译、江编到目标代码(code.o),不进行链接。 -shared生成共享目标文件。通常用在建立共享库时。 -Wall会打开一些很有用的警告选项,建议编译时故加此选项。 -static禁止使用共享连接 -w 禁止显示所有警告信息。 -llibrary进行链接时搜索名为library的库 -ldir 把dir加入到搜索头文件的路径列表 -Ldir 把dir 加入到搜索库文件的路径列表中。 例子:$ goo-l/homel/foo-L/home/foo -ltest test.c-o test -Dname 预定义一个名为name的宏,值为1。 例子:$ gcc -DTEST_CONFIG test.c -o test -Dname =definition 预定义名为name,值为definition的宏。 Optimization -O0禁止编译器进行优化。默认为此项。 -O -O1尝试优化编译时间和可执行文件大小。 -O2更多的优化,会尝试几乎全部的优化功能,但不会进行“空间换时间”的优化方法。 -O3在O2的基础上再打开一些优化选项:-finline-functions, -funswitch-loops和 -fgcse-after-reload . -Os对生成文件太小进行优化。它会打开-O2开的全部选项,除了会那些增加文件大小的。
以上是关于C语言的编译与调试的主要内容,如果未能解决你的问题,请参考以下文章