C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Makefile 的知识大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

1. Makefile 语法

                           生成文件(targets):依赖的文件(prerequisites )

                                                文件如何生成 (recipe)

test.o : a.o,b.o,c.o
            gcc -o a.o b.o c.o

a.o: a.c
      gcc -c a.o a.c

b.o: b.c
       gcc -c b.o b.c

c.o: c.c
      gcc -c c.o c.c

其中代码前面的空当不是空格而是Tab

 

2.可是这个样子太麻烦了如果有很多的文件会写的很长 所以此时我们需要一些通用服去代表所有的文件

test:a.o b.o
        gcc -o test a.o b.o

%.o: %.c
    gcc -c -o [email protected] $<

其中 [email protected] 表示的是目标文件(,o文件

$<表示的是第一个依赖文件(第一个.c文件

如果使用$^ 表示所有的依赖文件

test:$^
        gcc -o test a.o b.o

%.o: %.c
    gcc -c -o [email protected] $<

.PHONY 这个是为了当有其他文件被叫做clean的时候执行不了文件 所以需加上

 

3. 立即变量:

                 A  := abc 

4.  延迟变量: 只是在使用的时候才赋值 只是会得到最后得值

    A = $(C)

   C= 124

  C= 123

   此时A为123

5. append Plus += 不会覆盖原来的值会在后面增加新的值

   

6. 函数的运用:

     A = a b c

     B = $(foreach f,$(A), $(f).o)

all:

       @echo B = $(B)

把叫A变量里面每个名字叫a b c de文件变成.o的形式

    

$(filter patent,text)

在字符串中选择符合patent格式的值

 

 

$(filter-out patent,text)

在字符串中选择不符合patent格式的值

 注意patent 要加%

 

$(wildcard patent)

是否真实存在像patent格式那样的文件

 

$(patsubst patent replacement text)

把text中的patent替换成replacement。。

大佬总结

以上是大佬教程为你收集整理的Makefile 的知识全部内容,希望文章能够帮你解决Makefile 的知识所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。