编译与调试以及makefile

编译链接

总的来说,g++会直接执行编译链接操作,如果有了-c 则会不执行链接操作,只执行编译操作,而有了-o 才能控制可执行文件的名字

所以说,如果直接执行 g++ test.cpp 会产生一个默认名字为a.out 的可执行文件

g++ -o test test.cpp (生成可执行文件test,要执行编译链接过程)

./test  (执行该可执行文件)

-o后面要紧跟可执行文件的名字例如 g++ -g test.cpp -o test

g++ -o test test.cpp -Wall (加入-Wall后程序的编译会严谨一点,警告讯息也会显示出来!)

g++ -c test.cpp (生成.o的obj文件,只编译不链接)

g++ -o test test.o (生成可执行文件)

g++ -g -o test test.cpp (-g 编译时产生相应的调试信息)

调试

然后输入 gdb test 即可进入调试界面

下面介绍查看变量值的一个调试过程:

首先需要设置断点,比如 break 45

45 代表第45行,所以可能需要先用 list 命令显示源代码

然后要运行整个程序,使用 run 命令

接着 输出某个变量的值例如 print a

kill 可以结束当前程序的调试

quit 可以退出gdb

makefile

首先需要新建一个文档,可以取名为makefile

然后关于makefile的格式问题

test:test.o
        g++ -o test test.o
test.o:test.cpp
        g++ -g -c test.cpp
clean:
        rm -f test test.o
注意第二行前面 使用Tab键空出一段,可以看出这里就是描绘了由.cpp到.o文件的过程,然后由

.o文件到可执行文件.out的过程,由于调试信息是在编译时加入,所以在由.cpp到.o文件的过程

中加入-g。另外rm 操作中 -f的含义是即使原档案属性设为唯读,亦直接删除,无需逐一确认。

使用malefile时,只需在命令行窗口输入,make test 即可执行编译,链接过程,然后可以通过

./test 来执行可执行文件,同时可以通过 make clean来删除.o 文件,执行语句为 make clean。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值