GCC学习

1、gcc是根据后缀名来区分文件的

.c : c语言源文件

.a : 目标文件构成的库文件

.C/.cc/.cxx : c++源文件

.h : 头文件

.i : 预处理过的C源文件

.ii : 预处理过的C++源文件

.o : 编译后的目标文件

.s : 汇编语言源代码文件

.S : 经过预处理的汇编语言源代码文件

2、生成可执行文件四个步骤

预处理 :宏展开,头文件引入,

编译 :

汇编 :

连接 :

3、GCC编译选项

-o :指定可执行文件的名字,默认是a

-c :只做到编译即可,生成.o文件,汇编和连接不做

-g :添加调试信息

-O :对程序进行优化

-I :指定一个gcc可以查找头文件的目录 gcc -Ixx/xx/ xx.c -o xx

-l :

-static :静态连接,每一个程序都只有一份链接库的拷贝(程序和库文件合在一起)

和动态连接不同,动态连接是多个程序共享一份链接库的拷贝

默认采用的是动态连接

-Wall :生成所有的警告信息

-w :不生成任何警告信息

-D :定义宏比如gcc -DN test.c -o test

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
//#include "test.h"
//#define N int bar(int c, int d)
{
int e = c + d;
printf("sum is %d",e);
return e;
}
int foo(int a, int b)
{
return bar(a, b);
}
int main(void)
{
int i = 0;
foo(2, 5); #ifdef N
printf("ppppppppppppppppppppppppp");
#endif
return 0;
}

GDB常用命令

1、编译的时候带上-g选项,如gcc -g test.c -o test

2、gdb test

3、break(b) main ===》在main函数上打上断点

4、run

5、next(n)===>F6

6、contiue(c)====>f8

7、list(l)

8、info break

9、delete 删除断点

10、step(s)===>F5

11、finish

12、watch

13、quit(q)

14、print(p)

GCC/GDB学习的更多相关文章

  1. 学习的例子gcc+gdb+make

    1 小侃GCC 在正式使用gcc之前,我们先来侃侃gcc是啥玩意儿? 历史 如今的GCC是GNU Compiler Collection的简称.既然是Collection,就是指一些工具链的集合. 最 ...

  2. Linux之GDB学习

    Linux之GDB学习 GDB是一款优秀的调试工具,懂的人自然懂,一直以来用它都没有好好整理过使用方法,我用的也是皮毛,目前先整理一下皮毛,日后再更新 使用方法 编译C++ 从编译的角度上来说,需要在 ...

  3. gdb学习

    gdb学习 [参考资料] http://www.cnblogs.com/jiu0821/p/4483804.html 程序的运行状态有"运行"."暂停".&qu ...

  4. GCC,GDB,Makefile和IO复用函数

    2015.1.22 c高级的环境搭建:GCC编译器:全称 GNU CC,是GNU工具(tool chain)的一种,源码编译成机器码,gcc的编译依赖于很多小工具4.3.3和3.4.3版本的比较稳定 ...

  5. GCC&&GDB在OI中的介绍

    序言 这本来是用Word写的,但是后来我换了系统所以只能用markdown迁移然后写了...... $\qquad$本文主要投食给那些在Windows下活了很久然后考试时发现需要用命令行来操作时困惑万 ...

  6. (转载)gcc & gdb & make 定义与区别

    gcc & gdb & make 定义与区别 GCC 通常所说的GCC是GUN Compiler Collection的简称,除了编译程序之外,它还含其他相关工具,所以它能把易于人类使 ...

  7. GCC手册学习(序)

    已经是2014年的年末了,又快过了一年.今年,一定要认真把GCC再学习一遍,做好笔记. 总览 gcc [option|filename] ... g++ [option|filename] ...   ...

  8. GCC/G++ 学习笔记

    本文是<An introduction to GCC>的学习笔记,记录使用GCC/G++主要的实用技巧,本文讲述的知识基本上摘自本书,附带自己的一些体验.如果想详细查看本书,请戳这里. 一 ...

  9. 常用的工具GCC GDB Make Makefile

    系统调用系统调用是操作系统提供给外部应用程序的一组特殊的接口.应用程序通过这组特殊“接口”来获得操作系统内核提供的服务.在 C 语言中,操作系统的系统调用通常通过函数调用的形式完成, 这是因为这些函数 ...

随机推荐

  1. python 之 字符串处理

    分割字符串 根据某个分割符分割 >>> a = '1,2,3,4' >>> a.split(',') ['] 根据多个分隔符分割 >>> line ...

  2. pycharm使用教程链接+部分练习题01

    pycharm安装: https://www.cnblogs.com/jin-xin/articles/9811379.html pycharm使用教程: https://edu.51cto.com/ ...

  3. springboot4.1.1的log4j2配置

    一.默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台: 日志输出内容元素具体如下: 时间日期:精确到毫秒 日志级别:ERROR, WARN, INFO, D ...

  4. base64,AES,RSA,SHA和MD5等加密方式(jdk)

    import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import javax.crypto.Cipher; import jav ...

  5. 启发式搜索——A*算法

    启发式搜索 启发式搜索是一种对搜索到的每一个位置进行评估,然后从评估的最优位置进行搜索直到目的地, 由于搜索时对每一个位置的评估是基于直观或经验的所有叫启发式搜索 A*算法 历史: 1964年Nils ...

  6. WINDOWS选择目录SHBrowseForFolder使用方法介绍

    首先介绍一个兼容Unicode和多字节的方法,定义如下头文件: // TString.h; #pragma once #include <string> #ifdef UNICODE ty ...

  7. 适配的js

    /** * Created by fanso2o on 2016/9/7. */$(document).ready(function () { function change() { var html ...

  8. 吴恩达《机器学习》课程总结(18)_照片OCR

    18.1问题描述和流程图 (1)图像文字识别是从给定的一张图片中识别文字. (2)流程包括: 1.文字侦测 2.字符切分(现在不需要切分了) 3.字符分类 18.2滑动窗口 在行人检测中,滑动窗口是首 ...

  9. Pycharm 添加第三方库

    坏境:pycharm专业版 点击:file ——>setting ——>Project:python source code ——>Project interpreter ——> ...

  10. Spring AOP(三)--XML方式实现

    本文介绍通过XML方式实现Spring AOP,在上一篇中已经介绍了通过注解+java配置的方式,这篇文章主要是看XML中怎么配置,直接上代码了: 一.创建一个连接点 1⃣️定义接口 注意⚠️:可以定 ...