我在makefile教程中找到了以下几行,但是我对粗线有些问题.
在一行,如果我写
program_C_SRCS:=$(*.c)
Run Code Online (Sandbox Code Playgroud)
这是行不通的.所以请告诉我在这里做什么是通配符.这个词是否仅限于makefile?
在教程中写道,第二行将执行测试替换.谁能告诉我一些关于这个文本替换的事情?
如果我的问题非常基础,请原谅我,因为我是新手制作文件.
CC:=g++
program_NAME:=myprogram
**program_C_SRCS:=$(wildcard *.c)** # 1 line
program_CXX_SRCS:=$(wildcard *.cc)
**program_C_OBJ:=$(program_C_SRCS:.c=.o)** # 2 line
program_CXX_OBJ:=$(program_CXX_SRCS:.c=.o)
program_OBJ:= $(program_C_OBJ) $(program_CXX_OBJ)
Run Code Online (Sandbox Code Playgroud)
Bet*_*eta 13
假设您有两个源文件.foo.c和bar.c.
program_C_SRCS:=$(wildcard *.c) # 1 line
Run Code Online (Sandbox Code Playgroud)
该wildcard函数是Make语法.变量program_C_SRCS现在将具有值foo.c bar.c(可能不按该顺序).
program_C_OBJ:=$(program_C_SRCS:.c=.o) # 2 line
Run Code Online (Sandbox Code Playgroud)
这是替代参考.它转换文本,用另一个子串替换一个子串.变量program_C_OBJ现在具有值foo.o bar.o.