据我了解makefile模式规则,它总是to: from
,例如%.o: %:c
。但是,当我尝试制作一个简单的模式将.asm文件转换为.o文件时,Make似乎反过来解释这些模式。
撰写%.o: %.asm
并使用make test.asm
进行调用时,我会收到make: Nothing to be done for 'test.asm'.
但是,当我将规则更改为%.asm: %.o
时(这将违反我在任何教程中阅读的内容),我的模式突然有效。
我做错了什么,为什么make会这样做? (我当前的test-Makefile看起来像这样。它应该可以工作,但不行)
%.o: %.asm
echo Doing something
答案 0 :(得分:2)
在调用make
时,您需要指定要构建的内容,而不是您要构建的文件。
将make设为make test.o