我需要为4个文件创建一个makefile:q4.c,q3.c,q2.c,q1.c这4个程序的makefile格式是什么样的?我知道预处理、编译、汇编和清理这4个程序的必要标志,但是这4个程序的文件格式是什么样的呢?旁注:所有程序都在同一目录中。谢谢你的帮助- Dave L
1tuwyuhd1#
Makefile是一种非常全面和灵活的方式来描述构建过程及其操作、依赖关系等。有很多种可能的编写方式,因此永远不会有一个简单的答案来回答你的问题。为了举例,下面是你的Makefile在简单情况下的样子:
BIN = q1 q2 q3 q4 all: $(BIN) clean: $(RM) $(BIN)
如果您经常添加和删除源文件,并且每个文件都应编译为独立的可执行文件,则也可能如下所示:
SRC = $(wildcard *.c) BIN = $(patsubst %.c,%,$(SRC)) all: $(BIN) clean: $(RM) $(BIN)
根据项目的规模和要求,它可能会变得越来越复杂。我建议您从上面的例子开始,阅读Make documentation,了解一下它的功能。此外,Make是一项相当古老、复杂的技术。它需要大量的时间和练习来掌握,并且给你的回应很少。还有其他的选择。我个人推荐CMake--它更容易,是一个可以为你生成构建脚本的更高级别的系统。它支持Makefile、Xcode等等。它绝对值得一看。
knpiaxh12#
如果您使用的是gnu make,并且每个文件的标志都相同:
CFLAGS=-ffoo -O2 -fguess-at-hard-math all: q1 q2 q3 q4
否则,您可以显式指定每个
all: q1 q2 q3 q4 q1: q1.c gcc -o q1 q1.c q2: q2.c gcc -o q2 -fq2-flags q2.c ...
2条答案
按热度按时间1tuwyuhd1#
Makefile是一种非常全面和灵活的方式来描述构建过程及其操作、依赖关系等。有很多种可能的编写方式,因此永远不会有一个简单的答案来回答你的问题。为了举例,下面是你的Makefile在简单情况下的样子:
如果您经常添加和删除源文件,并且每个文件都应编译为独立的可执行文件,则也可能如下所示:
根据项目的规模和要求,它可能会变得越来越复杂。
我建议您从上面的例子开始,阅读Make documentation,了解一下它的功能。
此外,Make是一项相当古老、复杂的技术。它需要大量的时间和练习来掌握,并且给你的回应很少。还有其他的选择。我个人推荐CMake--它更容易,是一个可以为你生成构建脚本的更高级别的系统。它支持Makefile、Xcode等等。它绝对值得一看。
knpiaxh12#
如果您使用的是gnu make,并且每个文件的标志都相同:
否则,您可以显式指定每个