编译与调试以及makefile
来源:互联网 发布:excel雷达图怎么筛数据 编辑:程序博客网 时间:2024/04/29 13:09
编译链接
总的来说,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.otest.o:test.cpp g++ -g -c test.cppclean: rm -f test test.o注意第二行前面使用Tab键空出一段,可以看出这里就是描绘了由.cpp到.o文件的过程,然后由
.o文件到可执行文件.out的过程,由于调试信息是在编译时加入,所以在由.cpp到.o文件的过程
中加入-g。另外rm 操作中 -f的含义是即使原档案属性设为唯读,亦直接删除,无需逐一确认。
使用malefile时,只需在命令行窗口输入,make test 即可执行编译,链接过程,然后可以通过
./test 来执行可执行文件,同时可以通过 make clean来删除.o 文件,执行语句为 make clean。
- 编译与调试以及makefile
- gcc编译以及Makefile与GDB调试
- makefile与gdb调试
- 用GDB调试程序以及makefile编写
- Linux 工程编译调试Makefile及技巧
- Makefile与内核的编译
- Makefile 加入gdb以及不同目录编译
- Chrome编译与调试
- GTK编译与调试
- 编译与调试--adt
- Linux 编译与调试
- 算法编译与调试
- gcc编译与调试
- 调试ffmpeg与Makefile中的STRIP
- Windows下的命令编译与Makefile
- detours编译与windows下makefile学习
- detours编译与windows下makefile学习
- makefile编译选项与常用变量
- oracle statistic 统计信息——10g
- spring in action 5.Spring中集成Hibernate
- viewpager和以及在viewpager中使用FragmentPagerAdapter实现分页
- 交换机和路由器
- 迭代器,IEnumerator和IEnumerable的关系
- 编译与调试以及makefile
- .bss .data .text 区别
- 服务端程序问题累计
- android instanceof 运算符
- Linux下文本文件中^M 符号问题的解决
- 安装jdk7
- 操作手机录制标点查找
- Framework各个版本的变化
- Linux 2.6.32系统中基于dm6467平台ASOC架构的音频驱动