Chinaunix首页 | 论坛 | 博客

apt

  • 博客访问: 378272
  • 博文数量: 121
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 600
  • 用 户 组: 普通用户
  • 注册时间: 2015-04-10 15:52
文章分类

全部博文(121)

文章存档

2017年(2)

2016年(23)

2015年(96)

我的朋友

分类: C/C++

2016-01-23 22:59:11

2016年1月23日17:53:52
VI三种工作模式:
    命令行模式:打开文件的默认模式;
    插入模式:插入文字。
    底行模式:按‘:’退出保存等。

GCC:GNU Compiler Collection
GPL:GNU通用公共许可证(GNU General Public License,GPL)

编译过程可以分为:
     预处理:Pre-Processing         -E        gcc -E test.c -o test.i
     编译:Compiling                   -S        gcc -S test.i  -o test.S
     汇编:Assembling                 -c      任务是把汇编程序翻译成CPU可以识别的二进制文件,该文件成为目标文件 gcc -c test.c -o test.o
     链接:Linking                                任务是把所有的目标文件和所需要的库文件都链接在一起,最终生成一个可以直接运行的文件,成为可执行文件。  gcc test.o -o test
GCC可以根据需求在任何阶段结束。

函数库的使用分为静态和动态两种:
    静态就是将目标文件和所需要的库链接在一起,这样生成的目标文件即便在没有库的环境中也能运行;体积大,运行效率高;
    动态是指不链接在一起,等到可执行文件运行并且使用时才链接;体积小,效率低。

Glibc是GNU推出的C函数库,常用的有数学库libm、加密库libcrypt、网络服务库libnsl。其头文件在/usr/include下。链接库时用-l:gcc test.c -o test -lm:引用libm库。

GDB:GUN Debugger,GNU开发的调试器:如果要调试,编译的时候需要使用参数-g,作用是把调试信息加入生成可执行文件,否则无法调试:gcc -g test.c -o test;可以使用gdb test来启动调试。
    1、查看源文件    -     l;一次只能查看十行,回车或者输入‘l’会继续查看;
    2、设置断点:    -    b:例如设置第七行,使用:" b 7 ";
    3、查看断点:    -    info b;
    4、运行程序:    -    r:从头开始运行,运行到断点
    5、继续运行:    -    c:
    6、查看变量:    -    p: 例如查看变量n: "p n"
    7、单步运行:    - s

Makefile三项基本内容: 需要生成的目标文件(target file)、生成目标文件所需要的依赖文件(dependency file)、生成目标文件的编译规则命令行(commond)。具体的格式为:
    点击(此处)折叠或打开
  1. target file : dependency file
  2. commond
其中commond前面必须加一个键。

Makefile文件中变量赋值有下面几种方式:
    a = $(b):这样不论a之前的值是什么,经过这个命令后,a的值就是b的值。
    a := $(b):与上面这种方式类似
    a +=$(b):执行完这一句后,a的值是a之前的值“加上”b现在的值。
    a ?=$(b):如果a之前没有定义,则将b的值赋值给a,如果a之前定义了,就不需要赋值。

如果文件被放在多个路径中,可以使用VPATH和vpath指定;

Makefile中条件判断:ifeq、ifneq、ifdef、ifndef;

Makefile中常用函数:








   

阅读(1627) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~