试图找到在makefile
. 底部显示了我的简单makefile
.
线条 $(info aaa)
打印aaa
良好。但是线 echo 'aaa'
会产生错误*** missing separator
是否可以使用 echo in 打印信息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.
Run Code Online (Sandbox Code Playgroud)
Makefile 不是逐行执行的,而是关于规则依赖性的。您的 echo 语句不属于规则,但make
认为它应该,因此是错误消息。
我想生成一个独立于任何依赖项的通用输出,$(info ...)
(或$(warning ...)
)是要走的路。
您可以创建一个sayhello
目标:
.PHONY: sayhello
sayhello:
echo 'aaa'
Run Code Online (Sandbox Code Playgroud)
现在您可以运行make sayhello
以执行echo 'aaa'
命令。
虚假目标不是真正的文件名;相反,它只是在您提出明确请求时要执行的配方的名称。
https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html
该sayhello
目标也可以作为一个子程序中的hellomake
目标:
hellomake: hellomake.o hellofunc.o f1.o sayhello
gcc -o hellomake hellomake.o hellofunc.o f1.o -I.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10597 次 |
最近记录: |