试图找到一种简单的方式来打印信息,在这里,我想说的是,我想在这里找到一种简单的方式来打印信息。makefile
. 在底部显示了我的简单 makefile
.
线路 $(info aaa)
印花 aaa
罚款.但行 echo 'aaa'
出错 *** missing separator
能否用echo打印信息 makefile
?
CC=gcc
CFLAGS=-I.
DEPS = f1.h,hellomake.h
echo 'aaa'
$(info aaa)
%.o: %.c $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)
hellomake: hellomake.o hellofunc.o f1.o
gcc -o hellomake hellomake.o hellofunc.o f1.o -I.
Makefile不是逐行执行的,而是关于规则的依赖性。你的echo语句并不属于一个规则,而是属于 make
认为应该如此,因此出现了错误信息。
如果你想生成一个独立于任何依赖关系的通用输出,那么你可以使用这个方法。$(info ...)
(或 $(warning ...)
)是最好的方法。
你可以在你的 Makefile
:
a = $(shell echo abc)
$(info $(a))
您可以创建一个 sayhello
目标。
.PHONY: sayhello
sayhello:
echo 'aaa'
现在你可以运行 make sayhello
来执行 echo 'aaa'
命令。
假目标是指一个并不是真正的文件名,而只是当你提出明确请求时要执行的配方的名称。
https:/www.gnu.orgsoftwaremakemanualhtml_nodePhony-Targets.html
该 sayhello
靶子也可以作为 子程序 的 hellomake
目标:
hellomake: hellomake.o hellofunc.o f1.o sayhello
gcc -o hellomake hellomake.o hellofunc.o f1.o -I.