编译链接

总的来说,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相关推荐

  1. 【Win7下Android native code的编译和调试】

    光为这编译及调试环境就前后折腾了两三天,墙外找了很多教程,bill以为以下教程最为贴切 Using eclipse for android - cc Development Using eclipse ...

  2. (二) DIM-SUM系统环境搭建之编译与调试环境

    系统的编译与调试环境 一.编译 1.获取源码 2.编译工具 GCC Make 3.编译系统 (1)安装开发环境 (2)安装依赖 (3)编译内核 二.调试 1.下载QEMU 2.下载Python2.7 ...

  3. linux运行c语言实验总结,实验三:LINUX 下C语言使用、编译与调试实验

    一.目的: 1. 练习并掌握Linux提供的vi编辑器来编译C程序 2. 学会利用gcc.gdb编译.调试C程序 3. 学会使用make工具 二.内容 1. 编写C语言程序,用gcc编译并观察编译后的 ...

  4. u-boot 编译,调试及技巧

    u-boot 编译,调试及技巧 ---------------------------------------- Author: hjjdebug Date:   2015年 07月 28日 星期二 ...

  5. 费尽九牛二虎之力,终于我成功编译并调试了JVM

    最近在看synchronized 锁优化方面的内容,有些地方看起来不是很方便,干脆就编译个源码来看看. 在windows上编译 由于自己常用的电脑操作系统是win10,所以最开始是想要在win10上编 ...

  6. LLVM Clang前端编译与调试

    LLVM Clang前端编译与调试 iOS 关于编译 o 一.Objective-C 编译过程 o 为什么需要重新编译? o 编译步骤 o 二.编译步骤的详细说明 o 1.预处理 o 2.编译 o 词 ...

  7. 一份简单的在 Linux下编译及调试 C 代码的指南

    摘要: 一份简单的在 Linux下编译及调试 C 代码的指南 对于Linux下的C程序员来说,几乎天天都会和Linux打交道.但在很多人的眼中,Linux是一个易用性极差.靠命令驱动的操作系统,根本无 ...

  8. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )

    文章目录 一.Android 系统中调试器进程内存流程 二.编译内存调试动态库以及调试程序 三.博客资源 一.Android 系统中调试器进程内存流程 修改游戏运行中的内存 , 游戏运行之后 , 游戏 ...

  9. vscode / ubuntu 下编译和调试 C/C++ 方法

    零.前言 之前一直将 vscode 做为简单的编辑器使用,对编译调试一知半解,现在有时间好好整理了,咱们开始吧. 一.准备 需要安装 C/C++ 开发插件: Ctrl + p,在弹出的编辑框中输入如下 ...

最新文章

  1. Python系列教程之学生信息管理系统
  2. 盘点路由协议之RIP协议及IGRP协议
  3. 微服务为什么一定要用docker
  4. BootstrapTable(附源码) Bootstrap结合BootstrapTable的使用,分为两种模试显示列表。...
  5. ios 使用webview 查找_iOS开发WKWebView与JS的交互
  6. 重温《数据库系统概论》【第一篇 基础篇】【第3章 关系数据库标准语言SQL】
  7. Web黑客工具箱之LiveHttpHeaders
  8. python2.7更新pip_CentOS升级Python2.6到Python2.7并安装pip
  9. Postman系列之基本操作及设置
  10. c语言strTrimed函数用法介绍,TRIM函数
  11. (转)悟透javascript
  12. 监督学习、无监督学习、强化学习的区别
  13. 新年伊始 张孝祥老师 离开了
  14. 内外部函数和内存模型
  15. CSS3的2D转换和3D转换,你了解了嘛?
  16. va_start 用法
  17. Pepper/Nao初级教程:第二章 Pepper的使用方法
  18. 使用HTML5/CSS3五步快速制作便签贴特效
  19. 斑马ZM40条码打印机仅7K3
  20. Gradle教程 Spring源码编译

热门文章

  1. 用pygame编写一个跑酷游戏
  2. AI上推荐 之 AFM与DIN模型(当推荐系统遇上了注意力机制)
  3. 逆天!看看现在可以买到的13款机器人有多厉害! | 关注
  4. sws_scale概念讲解
  5. Armijo条件,Wolfe条件,Goldstein条件
  6. 北斗三号频点_北斗三号将为手机用户带来更好用户体验
  7. 时光悄悄流逝,光阴不再使你我天真
  8. 夜深模拟器调试下载的app
  9. 数字孪生三维铁路管理系统方案
  10. 作文提升~老师整理的优美比喻句太实用