makefile - Makefile : 无关的隐式目标文件
问题描述
考虑以下简单的 Makefile 规则
target : objDir/target.o
(...recipe...)
objDir/target.o : target.c
(...recipe...)
我想故意生成target.o
一个专用目录。
但是这个食谱会失败。因为在调用时make target
,它会尝试同时生成objDir/target.o
AND target.o
,然后在链接阶段,它会由于重复的符号而失败。
看起来这target.o
是一个隐式依赖,即使它从未在列表中指定,并且列表是非空的。target.o
然后可以满足,因为target.c
存在于同一目录中。
所以我可以想出多种复杂的方法来解决这个问题,从重命名源文件,或更改目标的名称,到委派从另一个目录开始的某个子 Makefile,但没有一个让人感到满意。
问题是:有没有办法告诉make
不承担目标的target.o
依赖target
?
解决方案
推荐阅读
- azure-data-explorer - Kusto CSL 首字母缩略词的含义
- python - 将变量从一个 shell 传递到另一个 shell 以执行 python 脚本
- c# - 如何创建大的空白框并在中间写一些文字?
- php - 如何自动检测 URL 格式?并自动创建正确的安全 Echo 或 Printf?
- python - 如何仅汇总数据框的某些列(python pandas)
- google-cloud-spanner - Cloud Spanner 模拟器 - docker 初始化
- css - CSS 伪类 :state() 是如何工作的?
- visual-studio-code - VS Code 允许我编辑只读文件,我该如何禁用它?
- c# - 使用 selenium 运行时,基于 Chromium 的浏览器不会导航到新的 url
- java - 如何在安装了 openJDK 的 docker 容器上运行没有 JDK 的 JCMD