三个cpp文件(a.cpp、b.cpp、c.cpp)和两个头文件(a.h、b.h),利用makefile怎么生成动态链接库libc.so
时间: 2024-05-16 20:15:44 浏览: 77
一个工程有.cpp,.h等很多文件怎么连接在一起
可以通过以下makefile来生成动态链接库:
```makefile
CFLAGS = -Wall -fPIC
CC = g++
LIB = libc.so
OBJ = a.o b.o c.o
all: $(LIB)
$(LIB): $(OBJ)
$(CC) -shared -o $@ $^
%.o: %.cpp
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f $(OBJ) $(LIB)
```
其中,`CFLAGS`变量用于指定编译选项(这里的`-Wall`表示开启所有警告提示,`-fPIC`表示生成位置无关代码),`CC`变量用于指定编译器,`LIB`变量用于指定生成的动态链接库名称,`OBJ`变量用于指定需要编译的目标文件。
在`all`目标下,将会生成`$(LIB)`动态链接库。这里使用了`-shared`选项来生成动态链接库。
接着,定义了一个目标模式`%.o: %.cpp`,用于将所有的`.cpp`文件编译为`.o`目标文件。
最后,定义了一个`clean`目标,用于删除所有生成的目标文件和动态链接库。
通过在终端输入`make`命令就可以生成动态链接库了。
阅读全文