【Linux篇】makefile一次形成两个可执行

首先要知道,正常的makefile文件,在执行的时候,遇到第一个目标文件,就只生成这一个

exec:exec.c
	gcc -o $@ $^
mycmd:mycmd.c
	gcc -o $@ $^
.PHONY:clean   
clean:
	rm -rf exec

上面的makefile只会生成exec,因为第一次遇到的目标文件是exec
如果要同时生成两个目标文件,就需要借助伪目标
伪目标不需要依赖方法,只需要维护依赖关系

.PHONY:all
all: exec mycmd

mycmd:mycmd.c
	gcc -o $@ $^
exec:exec.c
	gcc -o $@ $^

.PHONY:clean
	rm -f exec mycmd

当makefile从上到下被扫描时,要生成的目标文件第一个遇到的就是all,然后他就知道了这个all依赖的是exec和mycmd,然后就分别推导式地执行下面的两个执行生成mycmd和exec。然后all的依赖条件具备了,想执行all的依赖方法,但是由于是伪目标不需要依赖方法,所以makefile至此就结束。
make clean的时候,直接删除那两个可执行即可。

如想生成更多的可执行,同样的方法即可。

相关推荐

  1. Linuxmakefile形成执行

    2024-04-09 22:36:03       33 阅读
  2. Linux Makefile编写之执行程序

    2024-04-09 22:36:03       120 阅读
  3. Linux脚本执行系列命令

    2024-04-09 22:36:03       30 阅读
  4. Vue中用watch监听值的变化

    2024-04-09 22:36:03       53 阅读
  5. Linux Makefile

    2024-04-09 22:36:03       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-09 22:36:03       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-09 22:36:03       97 阅读
  3. 在Django里面运行非项目文件

    2024-04-09 22:36:03       78 阅读
  4. Python语言-面向对象

    2024-04-09 22:36:03       88 阅读

热门阅读

  1. Kubernetes统一管理vGPU:原理、实现与挑战

    2024-04-09 22:36:03       40 阅读
  2. 大模型从入门到应用——OpenAI基础调用

    2024-04-09 22:36:03       39 阅读
  3. 程序员如何搞副业?

    2024-04-09 22:36:03       37 阅读
  4. Go语言支持重载吗?如何实现重写?

    2024-04-09 22:36:03       41 阅读
  5. @Transactional 详解

    2024-04-09 22:36:03       35 阅读
  6. 雷军给年轻人的五点建议

    2024-04-09 22:36:03       28 阅读
  7. playwright入门-相遇(基础篇)

    2024-04-09 22:36:03       31 阅读