文档介绍:LinuxC++开发环境
目标
口Linux开发工具:gc
c>g++、Make、gdb
gcc概述
GCC:GNU编译软件合集,GNUCompiIerCollection
主页:
日期更晚的依赖文件,该值只有在使用显式规则时才会被
使用;
使用内部变量后的MAKEFILE
#ltisaexamplefordescribingmakefile
objects=
CC=gcc
hello:$(objects)
$(CC)-o$@$A
:
$(CC)—c$v
:
$(CC)—c$v
clean:
隐含规则
make工具中包含一些内置或隐含的规则,这些规则定义了如何从不同的依赖文件建立特定类型的目标。
扩展名规则
后缀规则
.C:.O
$(CC)$(CFLAGS)$(CPPFLAGS)-c-o$@$<
模式规则
%,c:%,o
$(CC)$(CFLAGS)$(CPPFLAGS)-c一。$@$<
一个比较成熟的MAKEFILE
#ltisaexamplefordescribingmakefile
objects=
CC=gcc
CFLAGS=-Wall-02
%.o:%.c
$(CC)$(CFLAGS)-c-o$@$<
hello:$(objects)
$(CC)$(CFLAGS)-o$@$八
:
:
clean:
t-J
pl
m1
-Wall
-Wall
-Wall
-02
-02
-02
=
伪目标
在Makefile中,有的目标存在只是为了形成一条规则,完成特
定的工作,并不生成新的目标文件,这样的目标称为伪目标。
******@oracle /tmp/maketest $ make clean
rm -f
userioracle /tmp/maketest
对于伪目标更为稳健的写法是:
.PHONY:clean
clean:
rm-f$(Objects)
Makefile的文件名
make按“GNUmakefile"、“makefile"、"Makefile”的顺序寻找makefile文件。最好使用“Makefile”这个文件名。
引用其它的Makefile
A使用include关键字把别的Makefile包含进来
A语法:ttincludefilename,filename可以保含路径和通配符
指定的路径、当前路径、
T或者一
include-
dir指定的参数、<prefix>/include
A在include前加减号:不理会读取文件错误,而继续执行
GNU的make工作时的执行步骤
>读入所有的Makefile。
>读入被include的其它Makefile。
A初始化文件中的变量。
»推导隐含规则,并分析所有规则。
>为所有的目标文件创建依赖关系链。
»根据依赖关系,决定哪些目标耍重新生成。
A执行生成命令。
MAKE参数
Make命令本身可带有四种参数:标志、宏定义、描述文件名和目标文件名
make[flags][macrodefinitions][targets]
make-
make“UBES=-LL-LS”指定宏定义
makeinstalI指定编译目标
glibc库
提供系统调用和基本函数的c库
gdb概述
GNU推出的著名的程序调试工具,功能强大,操作复杂
goo-g-//把调试信息加入到编译的文件中
gdbeg1〃运行并调试程序
(gdb)fileeg1//功能同上,在gdb中调用文件eg1
合话编辑查看书签设置耦助
[rootGNagicLinuxnftgdb
GNUgdbRedHatLinux(-)
Copyright2004FreeSoftwareFoundation,Inc.
GDBisfreesoftware,coueredbytheGNUGeneralPublicLicense,andyouarewelcometochange