初学Linux(四)—gcc的使用和代码调试

初学Linux(四)—gcc的使用和代码调试

一、先来看看整个编译过程
编译过程
1、在编译的过程中,一般不需要中间文件,也就是.i和.s文件。
2、gcc hello.c -o hello的意思是 生成一个二进制文件hello.o,-o的意思就是output。
3、用gcc hello.c也可以,但是会生成一个a.output文件,如果文件多的话很难区分,所以一般也不用这个指令。
二、gcc的常用指令
这里写图片描述
1、gcc对大小写字母很敏感,看到表格示例有大小写区分,注意不要写错。
2、如果一个c文件里的函数在另外一个.c文件里,可以这样关联:gcc a.c b.c –o a b 。
3、如果需要使用头文件和库文件,可以使用-I和-L指定路径。如:这里写图片描述
注意-L和-I后面是没有空格的。
4、 库有静态库和动态库之分,静态库(.a),动态库(.so),如果指定的路径有两个库,你想用静态库,可以再后面加-static。
三、代码调试
1、 肉眼查看
2、 打印调试语句(如打印行数),顺便定位发生错误的地方
3、 判断错误的类型(段错误——非法内存访问)
3.1如果是段错误,试图打开core文件,让系统保存程序发生错误的内存状态。(core是核心转储文件,也是内存照片,死亡照片)
3.2 如果不是段错误,或者调试期无法通过core文件直接定位出错点,只能求助于gdb

猜你喜欢

转载自blog.csdn.net/Hanghang_/article/details/65936175