我在makefile教程中找到了以下几行,但是粗体行有一些问题。
在1行中,如果我写
program_C_SRCS:=$(*.c)
这是行不通的。所以请告诉我什么
在这里做通配符。这个词仅特定于makefile吗?
在教程中,第二行将执行测试替换。谁能告诉我一些有关此文本替换的信息?
如果我的问题很基本,请原谅我,因为我是新来做文件塞的人。
link of tutorial
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)
最佳答案
假设您有两个源文件。 foo.c
和bar.c
。
program_C_SRCS:=$(wildcard *.c) # 1 line
wildcard
函数是Make语法。变量program_C_SRCS
现在将具有值foo.c bar.c
(可能不是该顺序)。program_C_OBJ:=$(program_C_SRCS:.c=.o) # 2 line
这是substitution reference。它转换文本,用另一个子字符串替换。变量
program_C_OBJ
现在具有值foo.o bar.o
。