linux编译C++代码

在linux环境下通过g++编译器和vim编辑器来编写程序,
介绍linux环境下g++编程和gdb调试以及makefile的编写。
vim helloworld.cpp
在这里插入图片描述

g++ -E helloworld.cpp >helloworld.i

通过执行上面的命令,输出预处理后的文件,如下面部分可以看到主要做宏的替换、注释的消除以及找到相关库文件。在该步骤不会进行语法错误检查。

cat helloworld.i |less

将预处理的文件转换成汇编语言,生成文件.s[编译器egcs]

g++ -S helloworld.cpp

在这里插入图片描述
3.汇编变为目标代码,生成.O文件
在该步骤进行词法和语法的检查,比如花括号不匹配,行末没有分号,关键字错误等。

g++ helloworld.cpp -o hello

在这里插入图片描述
gdb

当程序编译完成,需要对程序进行调试跟踪代码块的执行。gdb是GNU开发组织发布的一个强大的UNIX/Linux下的程序调试工具。主要有以下功能:

1.启动程序,可以按照用户自定义的要求运行程序。
2.可让被调试的程序在用户所指定的调试的断点处停住 (断点可以是条件表达式)。
3.当程序停住时,可以检查此时程序中所发生的事。
4.动态地改变程序的执行环境。

从功能上来看,gdb和一般的调试工具区别不大,可能习惯了图形化的调试工具暂时还不大习惯,但有时候,命令行的调试工具却有着图形化工具所不能完成的功能。­­­­­­­­­­­­­­­­­­­­­­­­­­­

g++ -g helloworld.cpp -o test
gdb test

l表示列出源码命令

l

在这里插入图片描述
break 4在源程序第4行设置断点
在这里插入图片描述
info break //显示断点信息Num Type Disp Enb Address What
==
r //运行程序,run命令简写Starting program
在这里插入图片描述
Breakpoint 1, main () at helloworld.cpp:16//在断点处停住6;
n //单条语句执行,next命令简写
在这里插入图片描述
(gdb) p i//打印变量result的值,print命令简写
在这里插入图片描述
在这里插入图片描述
bt查看函数堆栈
在这里插入图片描述

c //继续运行程序,continue命令简写。
在这里插入图片描述
q //退出gdb

参考文献
https://blog.csdn.net/weixin_39968640/article/details/116674174

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值