编写makefile将src目录下的.c编译,依赖lib目录下的.so
时间: 2024-11-22 08:42:30 浏览: 16
linux下构建多目录下Makefile产生so动态库样例
4星 · 用户满意度95%
Makefile是一种自动化构建工具,用于管理软件项目的编译过程。如果你想要在src目录下对所有的.c文件进行编译,并链接依赖于lib目录下的共享库(.so),你可以创建一个基本的Makefile,内容大概如下:
```makefile
CC = gcc # 使用gcc作为默认编译器
CFLAGS = -c # 静态编译选项
LDFLAGS = -L lib/ # 指定lib目录作为链接搜索路径
LIBS = -lyourlib # 你的共享库名
all: your_program # 目标规则,编译并链接所有源文件
%.o: %.c # 对每个源文件生成目标对象文件
$(CC) $(CFLAGS) $< -o $@
your_program: main.o others_o # 主程序依赖于所有其他对象文件
$(CC) $(LDFLAGS) $^ $(LIBS) -o $@
.PHONY: clean # 清理规则,删除目标文件
clean:
rm -f *.o your_program
```
在这个例子中:
- `main.o` 和 `others_o` 分别代表src目录下main.c和其他.c文件编译后的对象文件。
- `your_program` 是最终的可执行程序,它会链接所有.o文件并使用指定的lib。
要运行这个Makefile,只需要在终端输入 `make` 或者 `make all` 来编译项目,而 `make clean` 可以清除编译产生的临时文件。
阅读全文