- 博客(6)
- 收藏
- 关注
原创 GNUMake点滴(4)
多规则目标与自动产生依赖Makefile中,一个文件可以作为多个规则的目标(多个规则中只能有一个规则定义命令)。这种情况时,以这个文件为目标的规则的所有依赖文件将会被合并成此目标一个依赖文件列表,当其中任何一个依赖文件比目标更新时,make将会执行特定的命令来重建这个目标。利用这一特性,我们可以将gcc自动产生的依赖关系集成到Makefile中。第一步,生成依赖文件的规则:%.d:
2007-03-08 17:02:00
487
原创 C++中的静态成员
类的静态数据成员作为类的全局对象,每个类类型只有一份拷贝,由该类类型的所有对象共享访问。 静态数据成员应该在类的定义之外初始化。一般来说,不应该放在头文件中,而应该放在含有非inline函数定义的文件中。 如果该静态成员是private的,初始化时能用“类名::成员名”的方式引用,但在代码中不可以。比如:#include string>class Acco
2007-02-08 14:09:00
412
原创 C++中函数的重载、覆盖与隐藏
函数的重载、覆盖 与隐藏有相似之处,很容易混淆,经常是看了忘,忘了又看。所以把他们的区别记录在这。 重载 如果两个函数名字相同,并且在相同的域(比如全局域,同一个类等)中被声明,但是参数表不同则它们就是重载函数(overloaded function )。 下面几点是值得注意的:
2007-01-12 11:46:00
543
原创 GNUMake点滴(3)
变量和宏 变量可以不经声明而直接使用。要取得变量的值,将变量名用$()括起来;但对于单字母名字的变量,可以省略括号。在make中有四种方式对变量赋值: 1. :=运算符,如MAKE_DEPEND := $(CC) -M 这种方式叫做“简单展开”,因为在读到makefile中的这一行时等号右边就立即被展开了,等号右边引用的所有变量(如例子中的CC)也会被立即展
2007-01-08 22:38:00
555
原创 GNUMake点滴(1)
1. .PHONY声明伪目标。2. 规则中每一行命令都会另起一个shell执行,不同shell之间没有任何关系。比如:cd subdirrm a.o 则第二行删除的是当前目录下的a.o,而与subdir无关。 要实现这种功能需要将两条命令写在同一行:cd subdir; rm a.o 3. 要执行子目录中的make,推荐使用下面的方式:subsystem: cd
2006-12-30 15:09:00
389
原创 GNUMake点滴(2)
1. 传递变量给子make进程 在没有明确指定的情况下,上层make不会将其所执行的Makefile中定义的变量传递给子make进程。下列情况下变量将传递给子进程: make执行前已经存在的环境变量。 使用命令行指定的变量(如命令“make CFLAGS +=-g”或者“make –e CFLAGS +=-g”)。 export VARIABLE ..
2006-12-30 15:05:00
447
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人