
GNU MAKE
groundhappy
这个作者很懒,什么都没留下…
展开
-
在makefile中执行shell
在makefile中执行shell需要注意1 执行的时候一行就是一个shell。所以一个完整的shell命令必须在一行之内,因此要用\连接起来。比如if [ "$(obj)X" = "fsX" ]; then \echo "ONE1 $(KBUILD_BUILTIN)"; \echo "ONE2 $(builtin-target)"; \echo "ONE3 $(l原创 2016-10-12 16:57:17 · 9611 阅读 · 2 评论 -
gnu make关键点解释
在命令行中执行make的时候。make会在当前目录中寻找Makefile的文件。对其中的对应目标进行构建。make最基本的语法是targets: prerequisitescommand..........targets是需要构建的目标 prerequisites是构建这个目标需要的依赖command是执行的命令注意command前面有一个TAB原创 2016-10-12 10:03:47 · 458 阅读 · 0 评论 -
常用的gcc编译指令和操作
gcc是一套工具链。1将源码编译成.o 只编译不链接。gcc -c output.o source.c2执行链接gcc -o output source.c obj1.o obj2.o obj3.ogcc -o output source.o obj1.o obj2.o obj3.o也可以用ld执行链接过程。但是必须都指定ld -o outpu原创 2017-06-14 14:16:38 · 656 阅读 · 0 评论 -
make的更新规则和.PHONY
一般执行Makefile的时候都会有 xxx is up to date表示这个文件已经是最新的。而不需要重新编译。这样就节约了一大堆时间。如果依赖是最新的,那么就可以节约时间。最终就是 如果目标的依赖没有更新的话.那么目标是不需要更新的(如果目标存在).主要是通过检查依赖是不是比目标更加新.但是如下的文件all:cc -o main main.c原创 2017-06-14 16:20:24 · 2775 阅读 · 0 评论 -
写一个常用的通用makefile
想法是可以对于当前目录中子目录分别执行make 得到对应的obj文件同时可以指定排除某些目录或者文件。进行一些基础的控制第一步 获取当前目录中的 子目录 获取.c文件以及.cpp文件实现排除 不需要编译的目录 排除不需要编译的c 和cpp文件。原创 2017-06-20 10:35:28 · 569 阅读 · 0 评论