ChinaUnix.net
相关文章推荐:

makefile自动生成依赖

makefile生成依赖关系要额外的生成一个依赖文件,并且要把这个文件包含进来。上面的功能已经知道怎么处理了,不过有个问题include总是先尝试把文件包含进来,如果依赖文件已经存在,当依赖关系改变后,本次include进来的是未改变的依赖,然后依赖文件根据规则进行更新,更新的内容要在下一次才能生效,应该如何解决?

by k_element - Linux环境编程 - 2012-04-17 16:58:46 阅读(1124) 回复(0)

相关讨论

CC=gcc sources=main.c list.c Timer_queue.c readinfo.c do_netcard.c do_route.c\ route.c rreq.c rrep.c rrer.c OBJS:=$(patsubst %.c,%.o,$(sources)) all:Multichannel %.d:%.c @set -e; rm -f $@;\ $(CC) -MM $< > $@.$$$$;\ sed 's,\($*\)\.o[ :]*,\1.o $@:,g'<$@.$$$$>$@;\ rm -f $@.$$$$ include $(sources:.c=.d) Multichannel:$(OBJS) $(CC) -lpthread -o Multichannel $(OBJS) .PHONY:clean clean...

by 小林多喜三10 - Linux环境编程 - 2011-06-14 22:16:32 阅读(3361) 回复(1)

由于目前做的这个项目中,基于makefile的一套东西做的不好,我需要把它带到正规上来,所以才有了时间来好好研究makefile这一块,其中关于自动产生头文件这一块感觉非常好,对项目帮助也非常大,我来剖析这一用法。 如果不用自动产生依赖,那么如下: main.c #include"a.h" int main(void){ printf("hello word,makefile\n"); return 0; } makefile 如下: all:main.o main.o:main.c a.h $(CC) $(CPPFLAGS) -o $@ ...

by linuxGentoo - Linux文档专区 - 2009-11-14 21:20:22 阅读(742) 回复(0)

自动生成依赖性 在makefile中,我们的依赖关系可能会需要包含一系列的头文件,比如,如果我们的main.c中有一句“#i nclude "defs.h"”,那么我们的依赖关系应该是: main.o : main.c defs.h 但 是,如果是一个比较大型的工程,你必需清楚哪些C文件包含了哪些头文件,并且,你在加入或删除头文件时,也需要小心地修改makefile,这是一个很没 有维护性的工作。为了避免这种繁重而又容易出错的事情,我们可以使用C/C++编译...

by dongtianzhe - Linux文档专区 - 2009-04-11 22:23:06 阅读(1033) 回复(0)

阅读《GNU Make使用手册(中译版)》中的“4.12 自动生成依赖”一节,明白了一点:自动生成依赖是靠C/C++编译器来实现的。文中给出了一个格式规则: %.d: %.c set -e; $(CC) -M $(CPPFLAGS) $< \ | sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \ [ -s $@ ] || rm -f $@ 此格式规则是用来生成%.c的依赖文件%.d,最关键的一句是第3行语句,sed是Linux的Shell命令。 Q: 以下是我的...

by jut_bit_zx - 内核/嵌入技术 - 2006-12-08 17:03:48 阅读(1607) 回复(6)

我在这里看到一个完整的例子 [code]all: main main: main.o stack.o maze.o gcc $^ -o $@ clean: -rm main *.o .PHONY: clean sources = main.c stack.c maze.c include $(sources:.c=.d) %.d: %.c set -e; rm -f $@; \ $(CC) -MM $(CPPFLAGS) $< > $@.$$$$; \ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ rm -f $@.$$$$s[/code] 我想问的是, 为什么既然在makefile里明确写明了 %.d: %.c, 又要用sed把 .d...

by cleverd - C/C++ - 2009-04-02 10:43:23 阅读(1061) 回复(0)

阅读《GNU Make使用手册(中译版)》中的“4.12 自动生成依赖”一节,明白了一点:自动生成依赖是靠C/C++编译器来实现的。文中给出了一个格式规则: %.d: %.c set -e; $(CC) -M $(CPPFLAGS) $< \ | sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \ [ -s $@ ] || rm -f $@ 此格式规则是用来生成%.c的依赖文件%.d,最关键的一句是第3行语句,sed是Linux的Shell命令。 Q: 以下是我的...

by jut_bit_zx - 内核源码 - 2006-12-08 17:03:48 阅读(3889) 回复(6)

本帖最后由 crazyhadoop 于 2011-12-01 17:43 编辑 最近要看一个开源软件,结果 makefile 使用 automake 生成的,但是这个我看起来有点吃力,请问大家在看开源软件的时候 ,是如何下手的?有没有什么好的方法 ?[code]pkgdatadir = $(datadir)/openpts pkgincludedir = $(includedir)/openpts pkglibdir = $(libdir)/openpts pkglibexecdir = $(libexecdir)/openpts am__cd = CDPATH="${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd...

make

by f397993401 - Linux环境编程 - 2011-12-01 17:11:00 阅读(3152) 回复(3)

第一段代码,文章里说是“模式规则”。然后,“模式规则”是个什么东西?这段模式规则是写在一个脚本里面,然后运行后就会生成.d文件吗?

by zhuyuefeng2009 - 嵌入式开发 - 2014-09-27 17:13:55 阅读(914) 回复(2)

本帖最后由 yshihyu 于 2011-09-30 17:02 编辑 书中范例代码有几百个文件夹 , 每个文件夹中又有 .c 与.h 文件 有办法写一支shell script 去每个文件夹中寻找.c 与 .h 之后在每个文件夹中自动生成对应的.c 与.h 所需要的 makefile? 谢谢

by yshihyu - C/C++ - 2011-10-04 22:58:06 阅读(2541) 回复(7)

自动生成makefile文件并最终生成发布包需要一次执行下面几个命令: 1、autoscan ; 2、aclocal ; 3、autoconf ; 4、autoheader ; 5、automake ; 6、./configure ; 7、make ; 8、make install ; 9、make distcheck ; 10、make distclean ; 具体操作细节如下: 首先,要创建一个用来进行操作的目录,如:hello,并将源文件hello.c复制到这个目录下。 执行autoscan命令,hello目录下会生产configure.scan文件,将此文件名称改...

by istvh - Linux文档专区 - 2009-07-05 18:16:30 阅读(837) 回复(0)