makefile

C语言 码拜 10年前 (2015-05-11) 1042次浏览 0个评论
 

在当前目录
make —   bin              存放可执行文件
     |— include       头文件
     |— obj               目标文件
     |— src              .c文件
     |— makefile

 OBJ = obj/fun.o  obj/main.o

bin/main : $(OBJ)
       cc  -o $@  $^

obj/%.o : src/%.c
       cc  -c $<  -o  $@  -I ./include

clean :
       rm -rf  bin/main
       rm -rf  obj/*.o

请问:
如果要生成很多个.o文件,写在OBJ后面太麻烦,有没有简单的写法

20分
SRC := $(wildcard src/*.c)
OBJ := $(patsubst src/%.c,obj/%.o,$(SRC))

这样基本就OK了,添加.c文件也不需要修改Makefile

谢谢,顺便问一下
make 时候出现 undefined reference to “”pthread_create””
但是,我头文件加了,编译的时候-lpthread也加了,问什么还会出现这样的错误

makefile 中这句话如下:
cc  -c  $^  -o  $@  -I  ./include  -lpthread

搜“跟我一起写makefile”
20分
没个目录下写一个子makefile,然后不指定目标文件,利用make的潜规则,自动编译成源文件同名的目标文件,在上层makefile中调用各个子makefile

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明makefile
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!