谷动谷力

 找回密码
 立即注册

扫一扫,访问微社区

谷动谷力 首页 编程 查看内容

C基础教程-- 编译智能化之Makefile应用

2018-9-23 00:13| 发布者: admin| 查看: 117| 评论: 0|原作者: fannifu

摘要: 我们写好的代码需要编译,是不是每次都要输入 gcc -o hello.exe hello.c复制代码现在文件少,还好写,文件多了,这个样写,写完成这个语句都要天亮了,那我们怎么办呢?聪明的前人,就发明了Makefile, 写代码按一定 ...
我们写好的代码需要编译,是不是每次都要输入
  1. gcc -o hello.exe hello.c
复制代码
现在文件少,还好写,文件多了,这个样写,写完成这个语句都要天亮了,那我们怎么办呢?聪明的前人,就发明了Makefile, 写代码按一定规则编译,输入
  1. make
复制代码
即可

我们试着新建文文档,输入
  1. gcc -o hello.exe hello.c
复制代码
保存为Makefile,注意没有后缀

打开命令提示符,到源码目录,输入
  1. make
复制代码
再输入 hello.exe, 和我们要得到结果是一样的。

再更改一下Makefile
  1. tag = hello.exe
  2. obj = hello.o
  3. src += hello.c
  4. cc = gcc

  5. all: $(obj)
  6.            $(cc) -o $(tag) $(obj)
  7. run: $(tag)
  8.            $(tag)
  9. %.o: %.c
  10.            $(cc) -c $(CFLAGS) [        DISCUZ_CODE_198        ]lt; -o $@

  11. clean:
  12.            rm -f *.o
复制代码
注释:
  目标:依赖
(编译命令或Linux命令)

obj = hello.o
hello:$(obj)  //引用变量$(变量名)
    gcc -o hello $(obj)
%.o : %.c       //通配符 所有*.o 依赖于 *.c  *.c编译得到*.0
    gcc -c $<  //表示第一个依赖
    gcc -c $@  //所有目标
    gcc -c $^  //所有依赖


伪目标:依赖
clean:  //清理中间文件
    rm hello.o

现在不理解,没关系,照做就好了。
以后再理解

输入make 编译 
输入 make run 还可以运行




鲜花

握手

雷人

路过

鸡蛋

相关阅读

发表评论

最新评论

QQ|Archiver|手机版|小黑屋|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号

GMT+8, 2021-9-22 09:27 , Processed in 0.109834 second(s), 27 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

返回顶部