编译与调试以及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.og++ -o test test.o
test.o:test.cppg++ -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。
编译与调试以及makefile相关推荐
- 【Win7下Android native code的编译和调试】
光为这编译及调试环境就前后折腾了两三天,墙外找了很多教程,bill以为以下教程最为贴切 Using eclipse for android - cc Development Using eclipse ...
- (二) DIM-SUM系统环境搭建之编译与调试环境
系统的编译与调试环境 一.编译 1.获取源码 2.编译工具 GCC Make 3.编译系统 (1)安装开发环境 (2)安装依赖 (3)编译内核 二.调试 1.下载QEMU 2.下载Python2.7 ...
- linux运行c语言实验总结,实验三:LINUX 下C语言使用、编译与调试实验
一.目的: 1. 练习并掌握Linux提供的vi编辑器来编译C程序 2. 学会利用gcc.gdb编译.调试C程序 3. 学会使用make工具 二.内容 1. 编写C语言程序,用gcc编译并观察编译后的 ...
- u-boot 编译,调试及技巧
u-boot 编译,调试及技巧 ---------------------------------------- Author: hjjdebug Date: 2015年 07月 28日 星期二 ...
- 费尽九牛二虎之力,终于我成功编译并调试了JVM
最近在看synchronized 锁优化方面的内容,有些地方看起来不是很方便,干脆就编译个源码来看看. 在windows上编译 由于自己常用的电脑操作系统是win10,所以最开始是想要在win10上编 ...
- LLVM Clang前端编译与调试
LLVM Clang前端编译与调试 iOS 关于编译 o 一.Objective-C 编译过程 o 为什么需要重新编译? o 编译步骤 o 二.编译步骤的详细说明 o 1.预处理 o 2.编译 o 词 ...
- 一份简单的在 Linux下编译及调试 C 代码的指南
摘要: 一份简单的在 Linux下编译及调试 C 代码的指南 对于Linux下的C程序员来说,几乎天天都会和Linux打交道.但在很多人的眼中,Linux是一个易用性极差.靠命令驱动的操作系统,根本无 ...
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )
文章目录 一.Android 系统中调试器进程内存流程 二.编译内存调试动态库以及调试程序 三.博客资源 一.Android 系统中调试器进程内存流程 修改游戏运行中的内存 , 游戏运行之后 , 游戏 ...
- vscode / ubuntu 下编译和调试 C/C++ 方法
零.前言 之前一直将 vscode 做为简单的编辑器使用,对编译调试一知半解,现在有时间好好整理了,咱们开始吧. 一.准备 需要安装 C/C++ 开发插件: Ctrl + p,在弹出的编辑框中输入如下 ...
最新文章
- Python系列教程之学生信息管理系统
- 盘点路由协议之RIP协议及IGRP协议
- 微服务为什么一定要用docker
- BootstrapTable(附源码) Bootstrap结合BootstrapTable的使用,分为两种模试显示列表。...
- ios 使用webview 查找_iOS开发WKWebView与JS的交互
- 重温《数据库系统概论》【第一篇 基础篇】【第3章 关系数据库标准语言SQL】
- Web黑客工具箱之LiveHttpHeaders
- python2.7更新pip_CentOS升级Python2.6到Python2.7并安装pip
- Postman系列之基本操作及设置
- c语言strTrimed函数用法介绍,TRIM函数
- (转)悟透javascript
- 监督学习、无监督学习、强化学习的区别
- 新年伊始 张孝祥老师 离开了
- 内外部函数和内存模型
- CSS3的2D转换和3D转换,你了解了嘛?
- va_start 用法
- Pepper/Nao初级教程:第二章 Pepper的使用方法
- 使用HTML5/CSS3五步快速制作便签贴特效
- 斑马ZM40条码打印机仅7K3
- Gradle教程 Spring源码编译