makefile addprefix
时间: 2023-05-02 11:03:59 浏览: 116
makefile中的addprefix是一个函数,它用于将一个前缀添加到一组文件名之前。语法为:$(addprefix prefix, names)。其中,prefix是要添加的前缀,names是需要添加前缀的一组文件名。例如:$(addprefix src/, main.c utils.c)将得到src/main.c src/utils.c。
相关问题
makefile函数
Makefile 中的函数允许您在规则中执行一些简单的文本操作和转换。以下是一些常见的 Makefile 函数:
1. `$(subst from,to,text)`: 在 `text` 中将所有的 `from` 替换为 `to`。
2. `$(patsubst pattern,replacement,text)`: 将 `text` 中符合 `pattern` 的部分替换为 `replacement`。
3. `$(wildcard pattern)`: 扩展为匹配 `pattern` 的所有文件名。
4. `$(addprefix prefix,names)`: 在 `names` 中的每个单词前添加 `prefix`。
5. `$(addsuffix suffix,names)`: 在 `names` 中的每个单词后添加 `suffix`。
除了上述函数之外,Makefile 还提供了其他的函数,如字符串处理函数(`$(strip)`, `$(shell)`, `$(sort)` 等)、文件名函数(`$(dir)`, `$(notdir)`, `$(basename)` 等)和条件函数(`$(if)`, `$(foreach)` 等)等。您可以根据自己的需求在 Makefile 中使用这些函数来实现更复杂的操作。
$(CC) -o $(TARGET) $(OBJS) $(addprefix -L,$(LIBSDIR)) $(addprefix -l,$(LIBS)) -lcrypt
这是一个类似于 Makefile 中编译链接命令的语句,其中:
- `$(CC)` 是编译器的名称,可能是 `gcc`、`clang` 等。
- `-o $(TARGET)` 表示输出文件的名称为 `$(TARGET)`,其中 `$(TARGET)` 是 Makefile 中定义的变量。
- `$(OBJS)` 是目标文件的列表,表示需要将这些目标文件链接成一个可执行文件。
- `$(addprefix -L,$(LIBSDIR))` 表示将 `$(LIBSDIR)` 中的目录添加到链接器的库搜索路径中。
- `$(addprefix -l,$(LIBS))` 表示将 `$(LIBS)` 中的库名添加到链接器的库列表中。
- `-lcrypt` 表示链接器需要使用系统提供的 `crypt` 库。
综合起来,这个语句的作用是将 `$(OBJS)` 中的目标文件链接成一个可执行文件,并且将 `$(LIBS)` 中的库链接进去,同时指定 `crypt` 库的链接。
阅读全文