Linux c源程序编译(gcc gdb)
时间:2011-03-22
来源:互联网
如 gcc -o hello hello.c 如果hello.c有问题,编译没通过,那么当前目录是不会有hello这个文件?
2.编译没通过是因为源程序有什么样的错误呢?
3.如果没这个hello文件,那么就不能用gdb调试。请问gdb主要是调试出什么样的错误呢?
望大家帮帮我这个Linux新手!
作者: guixuhui2 发布时间: 2011-03-22
2. 有被编译器能够发现的错误
3. 调试编译器发现不了的错误
作者: yui 发布时间: 2011-03-22
2.错误有可能是语法错误,也有可能是链接错误,一步一步查。
3.gdb一般调试你的程序的逻辑错误。一般与具体应用相关的。
作者: wangtingguang 发布时间: 2011-03-22
2,编译一般包括词法、文法、语意等一系列的检查,每一步有问题就会卡住
3,用gdb调试的时候需要在编译时候加-g选项来帮助调试,一般帮助处理逻辑错误等
作者: thefirstz 发布时间: 2011-03-22
char *p;
p = 0;
*p = 0;
以上几行完全没有语法错误,所以编译的时候不会出错,但是一运行就会挂掉。
gdb就是用来调试类似这种,语法正确但是功能不正确的
作者: bluejays 发布时间: 2011-03-22
int age;
ageee = 234;
这里把变量的名字写错了,属于语法错误,无法通过编译。
改正之后,
int age;
age = 234;
这次可以编译通过,但是如果输出age就会发现某人年龄是234岁,显然不对,原因是234这个值写错了,应该是23。这样的错误gcc是发现不了的。用gdb调试就是为了找出这样的错误。
作者: bluejays 发布时间: 2011-03-22
2.错误有可能是语法错误,也有可能是链接错误,一步一步查。
怎么一步一步查!
用什么工具?还是自己慢慢肉眼查?
作者: guixuhui2 发布时间: 2011-03-22
引用 2 楼 wangtingguang 的回复:
2.错误有可能是语法错误,也有可能是链接错误,一步一步查。
怎么一步一步查!
用什么工具?还是自己慢慢肉眼查?
最简单的方法就是把程序大部分注释掉,编译通过了,将注释的范围缩小。
hoho
作者: wangtingguang 发布时间: 2011-03-22
作者: a274955739 发布时间: 2011-03-22
再举个例子:
int age;
ageee = 234;
这里把变量的名字写错了,属于语法错误,无法通过编译。
如果程序很大,用什么方法能快速的检查出错误出在哪里。换句话说,如何在较大较繁琐的源程序中找到错误出现在ageee这里。
作者: guixuhui2 发布时间: 2011-03-22
2.错误有可能是语法错误,也有可能是链接错误,一步一步查。
如何知道是链接错了还是语法错了。能讲讲什么时候要用到链接吗?有用到库函数是不是都得在命令行
上加上-l选项?
作者: guixuhui2 发布时间: 2011-03-22
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28