C语言的编译与调试

Posted *乐途*

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言的编译与调试相关的知识,希望对你有一定的参考价值。

gcc 编译C语言的

g++ 编译C++语言的

gcc与g++编译选项

-ggdb -ggdblevel 为调试器 gdb生成调试信息。Jevel可以为1,23,默认值为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语言的编译与调试的主要内容,如果未能解决你的问题,请参考以下文章

从零开始配置vim(28)——代码的编译运行与调试

C语言中编译 生成 调试 测试 运行各是啥意思有啥区别

C/C++编程笔记:VC++6.0环境下调试 C语言 代码的方法和步骤

vscode C语言编译?

浅析编译型与解释型语言&python种类与特点

vscode为啥不能调试c语言