Chinaunix首页 | 论坛 | 博客
  • 博客访问: 126527
  • 博文数量: 14
  • 博客积分: 1430
  • 博客等级: 上尉
  • 技术积分: 155
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-15 16:40
文章分类
文章存档

2015年(1)

2011年(1)

2009年(1)

2008年(11)

我的朋友

分类: LINUX

2011-02-22 22:45:47

//视频学习.  1-1 GCC程序编译

Gcc最基本使用方法:

  Gcc [options][filenames]

  Options:编译器所需要的编译选项.

  Filenames:要编译的文件名.

 

编译选项:

1.      –o output_filename: 确定输出的可执行文件名称为output_filename,若不指定,默认输出a.out

2.      –c:  只编译,不连接生成可执行文件.只生成.o后缀的目标文件.

3.      –g:  产生gdb所需要的符号信息,要想对程序进行调试,则编译时需要加入该参数.

4.      –O:  对程序进行优化编译链接.

5.      –O2: -O更好的优化.

6.      –Idirname: dirname所指出的目录加入到程序头文件目录列表中.

7.      –Ldirname: dirname所指出的目录加入到库文件的目录列表中.

8.      –lname: 在链接时,装载libname.a函数库.即链接特定库,如数学库.

9.      –static:  静态链接库文件.(gcc默认采用动态链接的方式.)

10.   –Wall:  生成所有警告信息.

11.   –w:  不生成警告信息.

12.   –DMACRO: 定义MACRO,等于c语言中的#define MACRO

 

//视频学习.  1-2 GDB 程序调试

1.  启动gdb:   方法1. gdb 调试程序名

     方法2. gdb 回车, 然后用file 调试程序名

2. list(l)             :查看程序

3. break(b) 函数名    :在函数入口处打断点

4. break 行号         :在指定行加断点

5. break 文件名:行号     在指定文件的行加断点.

6.break 行号 if 条件   : 当条件为真时,断点生效.

7.info break         :   查看所有设置的断点

8.delete 断点编号   :   删除断点

9.run(r)           :开始运行程序

10. next(n)        : 单步执行.

11. step(s)   :next区别, 单步遇到子函数时会进入子函数,next会跳过该函数.

12.continue  :遇到断点后, 继续运行直到完成或再遇到断点.

13.print(p)变量名  : 查看指定变量的值

14.finish : 运行程序直到当前函数结束.

15.watch 变量名 : 对指定变量进行监控.

16.quit(q) 退出gdb.

 

 

//视频学习.  1-3 Makefile工程管理

Linux2.4.20 内核的源文件和头文件总和大约是1万个,2.6大约是2万个.

 

Linux程序员必须会使用GNU make来构建和管理自己的软件工程.

GNUmake能够使整个软件工程的编译、链接只需要一个命令就可以完成.

 

make在执行时,需要一个命名为Makefile的文件.Makeile文件描述了整个工程的编译,链接等规则.其中包括工程中哪些源文件需要编译及如何编译.创建哪些库文件及如何创建这些库文件,如何最后产生我们想要的可执行文件。

 

Makefile(术语)

1.      规则: 用于说明如何生成一个或多个目标文件,规则格式如下:

       Targets(目标) : prerequisites(依赖)

            Command(命令)

        注意命令需要以Tab键开始.

     Makefile,规则的顺序很重要,因为Makefile中只应该有一个最终目标,一定要让make知道你的最终目标是什么,一般来说,第一条规则中的目标将被确定为最终目标。

2. 文件名

   make命令默认在当前目录下寻找名字为makefileMakefile的工程文件,当名字不为这两者之一时,可以使用如下方法指定:

      make –f 文件名

3. 伪目标

   Makefile 中把哪些没有任何依赖只有执行动作的目标称为“伪目标”(phony targets)

    .PHONY :

4. 变量

   makefile中,存在系统默认的自动化变量

   (1) $^ : 代表所有的依赖文件

   (2)$@: 代表目标

   (3)$<:  代表第一个依赖文件.

5. 杂项

   (1)Makefile#字符后表示注释

   (2)命令要以Tab键开始.

   (3)命令前面@符的作用. @符会取消编译时命令的回显.

 

 

 

//视频学习.  1-4 必修实验

1.      编写应用,用gcc编译,要求用-o,-g,-static,-O2选项,对比用和不用差别;

2.      编写应用,用gdb调试,调试中使用小节中用的gdb命令;

3.      编写应用,由2c文件构成,使用makefile来完成程序的编译.

 

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

chinaunix网友2011-03-06 16:17:42

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com