首页 > 代码库 > makefile里的一些常用函数

makefile里的一些常用函数

$(shell find $(SRC_DIR) -name ‘*.h‘) #寻找SRC_DIR所代表目录下的所有名字后缀为.h的头文件  

$(sort $(foreach i, $(INC_DIR), -I$(i))) #对INC_DIR所代表的头文件进行排序

$(shell find $(SRC_DIR) -name ‘*.cpp‘) #寻找SRC_DIR所代表目录下的所有名字后缀为.cpp的头文件

$(patsubst %.cpp, %.o, $(SRCS)): 模式匹配替换SRCS所代表的字符串中后缀为.cpp的替换为.o

$(subst FROM, TO, TEXT),即将字符串TEXT中的子串FROM变为TO。 ------subst 是全字符串替换,patsubst 是模式替换

ifeq ($(origin DEFINES), undefined) --判断是否相等。。 origin函数判断DEFINES的出生情况,如果DEFINES未定义过那么$(origin DEFINES)返回undefined 这个if判断为真

g++ 后面跟的参数: -lm -m32 -ldl -rdynamic

-lm: 显示连接数学库

-m32: 编译为32位代码

-ldl: 表示生成的对象模块需要使用共享库

-rdynamic: 用来通知链接器将所有符号添加到动态符号表中
(目的是能够通过使用 dlopen 来实现向后跟踪)


选项 -Wall 开启编译器几乎所有常用的警告──强烈建议你始终使用该选项。编译器有很多其他的警告选项,但 -Wall 是最常用的。默认情况下GCC 不会产生任何警告信息。

makefile里的一些常用函数