Makefile 为每个源文件生成一个二进制文件
Posted
技术标签:
【中文标题】Makefile 为每个源文件生成一个二进制文件【英文标题】:Makefile to generate a binary file for each source file 【发布时间】:2022-01-14 19:59:44 【问题描述】:我的项目中有以下结构。
/ src/ bin/ 生成文件在 src 目录下会有多个 src 文件(每个都有一个 main 函数)。我需要编写makefile,这样当我运行时
make program1
它应该在 src 文件夹中搜索 program1.c 并将可执行文件编译为 bin 文件夹中的 program1*。
我遇到了这个问题How can Makefile use separate directories for source code and binaries? 但是,似乎我需要手动将所有程序名称输入到 PROG 变量中。 我只需要使用 make 提供二进制名称,它应该为相应的 src 文件进行编译?
【问题讨论】:
【参考方案1】:好的,在对我的 Makefile 进行了一些实验之后。我终于找到了解决问题的方法。
当前构建系统
CC = gcc
CFLAGS = -g -Wall
SRC = ./src/
BIN = ./bin/
%: $(SRC)%.c
$(CC) $(CFLAGS) $< -o $(BIN)$@
.PHONY: clean
clean:
rm $(BIN)*
【讨论】:
以上是关于Makefile 为每个源文件生成一个二进制文件的主要内容,如果未能解决你的问题,请参考以下文章
生成一个 Makefile,使用 Automake 一步编译和链接所有源文件