makefile生成静态库
时间: 2024-06-18 07:03:00 浏览: 125
linux下的静态库与动态库的区别,Gdb调试段错误,自动生成Makefile.pdf
Makefile是一个用于自动化构建软件的工具,它可以根据规则和依赖关系自动执行一系列指令,从而生成目标文件(例如静态库)。
下面是一个生成静态库的Makefile示例:
```
# 定义编译器
CC=g++
# 定义编译选项
CFLAGS=-c -Wall
# 定义目标文件名
TARGET=mylib.a
# 定义源代码文件
SRCS=foo.cpp bar.cpp
# 定义目标文件
OBJS=$(SRCS:.cpp=.o)
all: $(TARGET)
$(TARGET): $(OBJS)
ar rcs $(TARGET) $(OBJS)
# 编译每个源代码文件为目标文件
.cpp.o:
$(CC) $(CFLAGS) $< -o $@
clean:
rm -f $(OBJS) $(TARGET)
```
该Makefile中,首先定义了编译器和编译选项,然后定义了目标文件的名称以及源代码文件和目标文件的名称,接着定义了一个all目标,将会编译生成静态库。然后定义了一个$(TARGET)目标,它依赖于所有的目标文件$(OBJS),在依赖关系中使用了一些自动变量$<和$@,表示依赖的源文件和目标文件的名称。最后定义了一个编译规则,将每个源代码文件编译为目标文件,以及一个clean目标,用于清除生成的目标文件和静态库。
如果要生成静态库,只需要在命令行中输入make即可。在生成静态库后,可以通过-lmylib来链接该静态库。
阅读全文