![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
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 · 9513 阅读 · 2 评论 -
gnu make关键点解释
在命令行中执行make的时候。 make会在当前目录中寻找Makefile的文件。对其中的对应目标进行构建。 make最基本的语法是 targets: prerequisites command ..... ..... targets是需要构建的目标 prerequisites是构建这个目标需要的依赖 command是执行的命令 注意command前面有一个TAB原创 2016-10-12 10:03:47 · 421 阅读 · 0 评论 -
常用的gcc编译指令和操作
gcc是一套工具链。 1将源码编译成.o 只编译不链接。 gcc -c output.o source.c 2执行链接 gcc -o output source.c obj1.o obj2.o obj3.o gcc -o output source.o obj1.o obj2.o obj3.o 也可以用ld执行链接过程。但是必须都指定 ld -o outpu原创 2017-06-14 14:16:38 · 618 阅读 · 0 评论 -
make的更新规则和.PHONY
一般执行Makefile的时候都会有 xxx is up to date 表示这个文件已经是最新的。而不需要重新编译。 这样就节约了一大堆时间。如果依赖是最新的,那么就可以节约时间。 最终就是 如果目标的依赖没有更新的话.那么目标是不需要更新的(如果目标存在).主要是通过检查依赖是不是比目标更加新. 但是如下的文件 all: cc -o main main.c原创 2017-06-14 16:20:24 · 2546 阅读 · 0 评论 -
写一个常用的通用makefile
想法是可以对于当前目录中子目录分别执行make 得到对应的obj文件 同时可以指定排除某些目录或者文件。 进行一些基础的控制 第一步 获取当前目录中的 子目录 获取.c文件以及.cpp文件 实现排除 不需要编译的目录 排除不需要编译的c 和cpp文件。原创 2017-06-20 10:35:28 · 490 阅读 · 0 评论