怎样让shell获取gcc调试信息

有时我感觉真的好迷茫 2009-05-23 07:04:28
我想在shell中调用gcc来编译一个c文件,怎样可以在shell中获取调试信息来判断编译是否成功。假如编译失败,怎样才能获得源程序出错的行号(位置)。进而可以通过人工修改的方式修改源程序。
请大家帮帮忙,给点思路,谢谢!
...全文
344 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
brookmill 2009-05-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xuexi_123 的回复:]
brookmill 能否再请教一下,怎样在一个文件的指定行追加一条语句?谢谢。
[/Quote]
这个大概要用sed或者awk之类的,具体用法我就不会了,只能看手册、google
brookmill 2009-05-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xuexi_123 的回复:]
那么怎样才能将出错的行号保存到一个变量中呢,我想用变量保存行号!麻烦了!
[/Quote]
export abc=`gcc test.c 2>&1 | grep error | cut -d ":" -f 2`
echo $abc
结果未必是你想要的,可能还得加些循环之类的
  • 打赏
  • 举报
回复
brookmill 能否再请教一下,怎样在一个文件的指定行追加一条语句?谢谢。
brookmill 2009-05-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 Dansley 的回复:]
楼上高手,我总是不太能记住这些命令
[/Quote]
我不是高手,我也记不住。除非天天用,不可能都记住的
能做到的是:知道有某个命令差不多能实现某个功能,具体的用法就man,或者google
Dansley 2009-05-23
  • 打赏
  • 举报
回复
楼上高手,我总是不太能记住这些命令
  • 打赏
  • 举报
回复
那么怎样才能将出错的行号保存到一个变量中呢,我想用变量保存行号!麻烦了!
brookmill 2009-05-23
  • 打赏
  • 举报
回复
警告也应该看看
gcc test.c 2>&1 | grep -E 'warning|error' | cut -d ":" -f 2-3
brookmill 2009-05-23
  • 打赏
  • 举报
回复
源程序出错的行号
可以考虑把gcc的输出重定向给cut处理,比如
gcc test.c 2>&1 | grep error | cut -d ":" -f 2
brookmill 2009-05-23
  • 打赏
  • 举报
回复
用$?来查看gcc的返回值,返回0就是编译成功

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧