编译与调试以及makefile
2014-03-27 16:11
274 查看
编译链接
总的来说,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。
相关文章推荐
- gcc编译以及Makefile与GDB调试
- Linux下C程序的编辑,编译和运行以及调试
- Qt 4.7.4 完美动态编译发布动态调试,以及静态编译发布(转)
- Linux 工程编译调试Makefile及技巧
- cocos code IDE 自编译模拟器不能正确的运行以及断点调试连接IDE超时的解决方法
- qt中如何设置makefile中的编译参数(qt中添加gdb调试的条件)
- linux C下多文件编译,以及Makefile的使用
- sass安装以及安装后谷歌调试编译的解决方案
- gdb7.10.1的交叉编译以及远程调试
- gcc 的编译选项以及调试
- 在vs2008中编译(调试)eMule0.50a以及veryCD版的easyMule
- qt中如何设置makefile中的编译参数(qt中添加gdb调试的条件)
- VS 使用自带的.NET Reflector单步调试编译好的程序集(反编译),以及相关其他反编译程序介绍
- ubuntu下使用code:block编译caffe的Makefile以及源码
- Android高效开发编译调试神器_Jrebel 最新激活方法以及 freeline(快到飞起~秒杀InstantRun)
- Linux中gcc,g++常用编译选项以及makefile的编写
- Windows环境的GNU安装以及使用makefile编译生成*.exe
- 深入解析Xcode无证书编译以及真机调试
- 嵌入式 用GDB Server进行远程调试交叉编译工具以及运用小结
- 非常方便的shell脚本opencv编译以及gdb调试