工程管理器与GDB调试器

来源:互联网 发布:java时间戳转换成秒 编辑:程序博客网 时间:2024/05/16 05:39

工程管理器

点击make”按钮对整个程序进行自动编译

 

make工程管理器完全根据makefile文件中编译规则命令进行工作

Makefile 由以下三项基本内容组成:

目标文件(target file

依赖文件(dependency file)

编译规则命令行(command)

Target file  :  dependency file

   <Tab>command

 

Makefile 提供变量来代替文件名,变量名的使用方法是

$(变量名)

 

自动推导功能默认每个目标文件都有一个与之对应的依赖文件,这样就不需要指定与目标文件对应的依赖文件

例:

  Obj = a.o b.o

   Test:$(obj)

 Cc -o test $(obj)

  

通过伪目标可以让工程管理器只执行规则命令,不用创建实际的目标文件

使用方式为

Make 伪目标名

为了不和真实的目标文件混淆,使用.PHONY”对目标文件进行标识

 

例:

  Cc = gcc

  Target=hello

  Object=hello.o

$(target):$(object)

  $(cc) $(object) -o $(target)

 

.PHONY :clean

   Clean:

rm -rf hello.o

运行make会完成自动编译

运行./hello执行目标文件

运行make cleanmake会执行命令rm -rf hello.o

 

嵌套执行:把makefile分解成多个子makefile,放置到程序的每个子目录中,每个子makefile文件负责所在目录下源文件的编译

使用方法是:

$(make) -c子目录

 

条件判断

工程管理器可以在运行时对条件进行判断,然后进入条件分支继续编译

书写格式如下:
条件表达式

   如果真执行的文本段

Else

   如果假执行的文本段

endif

 

Makefile 的自动生成

Autoscan

Aclocal

Autoconf

Autoheader

Automake

Configure

 

GDB调试器

   只依靠gcc调试效率非常低

   运行命令gcc -g test.i -o testtest.i进行编译,g的作用是把调试信息加入到生成的test可执行文件中

 

  Gdb test启动GDBtest进行调试

   L(ist)  查看源文件

   B 7 在第7行设置断点

   Info b查看所有断点情况

  R 运行程序 默认从代码的首行开始

  R 行数 让程序从指定行数开始运行

  “P变量名” 查看变量值

C 继续运行程序

Next 下一步(不进入函数内部运行)

Step 下一步(在发生函数调用时进入函数内部运行)

Return 从函数返回

Q 退出

 

 

原创粉丝点击