makefile 生成静态库
时间: 2023-11-01 21:08:04 浏览: 99
Makefile自动搜所目录及子目录下的的所有文件、自动生成编译目录
要生成静态库,可以使用 Makefile 来自动化该过程。下面是一个示例的 Makefile 文件,用于生成静态库:
```makefile
# 编译器设置
CC := gcc
CFLAGS := -Wall -Werror
# 目标文件夹及静态库名字
BUILD_DIR := build
LIB_NAME := mylib.a
# 源文件和目标文件列表
SRCS := $(wildcard *.c)
OBJS := $(patsubst %.c,$(BUILD_DIR)/%.o,$(SRCS))
# 默认目标,生成静态库
$(BUILD_DIR)/$(LIB_NAME): $(OBJS)
ar rcs $@ $^
# 编译源文件为目标文件
$(BUILD_DIR)/%.o: %.c | $(BUILD_DIR)
$(CC) $(CFLAGS) -c -o $@ $<
# 创建目标文件夹
$(BUILD_DIR):
mkdir -p $@
# 清理生成的目标文件和静态库
clean:
rm -rf $(BUILD_DIR)
.PHONY: clean
```
将上述代码保存为名为 `Makefile` 的文件,并将其放在与源代码文件(`.c` 文件)相同的目录下。然后通过运行 `make` 命令即可生成静态库。
Makefile 中的变量可以根据实际需求进行修改,比如修改 `CC` 和 `CFLAGS` 变量来适应不同的编译器和编译选项。另外,需要注意的是,该示例假设源代码文件都位于同一目录下,如果源代码文件分布在多个目录中,需要相应地修改 Makefile。
阅读全文