makefile - makefiles 隐式规则说文件是最新的,但文件甚至不存在
问题描述
我尝试使用 make 的隐式规则来编译简单的 C 文件。
# -*- MakeFile -*-
new.o: new.c
输出:
make: 'new.o' is up to date.
但new.o
此时不存在。但我添加了另一条规则,它按预期工作。
# -*- MakeFile -*-
new.o: new.c
clean:
rm -f new.o
输出:
cc -c -o new.o new.c
现在它按预期运行了命令。是否需要至少有两个食谱才能起作用,还是我错过了一些非常明显的东西?
解决方案
我通过添加额外的东西犯了一个愚蠢的错误新队 我的隐式配方下方的TAB字符。去除多余的新队 TAB字符解决问题
编辑的makefile
# -*- MakeFile -*-
new.o: new.c
输出:
cc -c -o new.o new.c
推荐阅读
- logging - RollingFileManager checkRollover 遇到线程争用
- python - 根据发票编号将日期从一个数据帧插入到另一个数据帧
- python-2.7 - ImportError:Ubuntu 18.04 上的 Python 2.7 中没有名为 tarfile 的模块
- apache-zookeeper - 启动 Zookeeper 服务器会抛出 Zookeeper 属性文件
- mongodb - 修改/创建文档时发出信号
- c# - 获取 ASP MVC 异常异常类型:InvalidOperationException
- android - Android 中的离线自动语音识别 (ASR) 准确度最高
- ios - 如何解决 SwiftUI 中多个 Published on 2 TextField 的死锁?
- material-ui - Material UI - 选择带有结束装饰的菜单
- python - 如何使用pybind11将堆分配指针的`std::vector`传递给python?