首页 >后端开发 >C++ >如何为单文件项目创建简单的 C Makefile?

如何为单文件项目创建简单的 C Makefile?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-08 03:48:10971浏览

How to Create a Simple C   Makefile for a Single-File Project?

如何制作一个简单的 C Makefile

问题:
我们需要创建一个 Makefile 来管理我们的 C 项目,但我们还没有被教导如何这样做。该项目由一个文件 a3driver.cpp 组成,该文件从 /user/cse232/Examples/example32.sequence.cpp 导入一个类。

解决方案:

1.基本 Makefile:

a3a.exe: a3driver.cpp example32.sequence.cpp
    g++ -g -o a3a.exe a3driver.cpp example32.sequence.cpp

此 Makefile 声明可执行文件 a3a.exe 依赖于源文件 a3driver.cpp 和 example32.sequence.cpp。执行时会执行命令将程序编译成可执行文件。

2.使用内置规则:

CC=g++
CPPFLAGS=-g

a3a.exe: a3driver.o example32.sequence.o
    $(CC) $(LDFLAGS) -o a3a.exe a3driver.o example32.sequence.o

a3driver.o: a3driver.cpp
    $(CC) $(CPPFLAGS) -c a3driver.cpp

example32.sequence.o: example32.sequence.cpp
    $(CC) $(CPPFLAGS) -c example32.sequence.cpp

此 Makefile 使用内置规则来简化编译命令。它将 CC 变量定义为 C 编译器,并将 CPPFLAGS 变量定义为具有公共编译标志。依赖项仍然是显式定义的,但编译命令是自动生成的。

3.使用自动生成的依赖项:

CC=g++
CPPFLAGS=-g

a3a.exe: a3driver.o example32.sequence.o
    $(CC) $(LDFLAGS) -o a3a.exe a3driver.o example32.sequence.o

depend: .depend

.depend: $(SRCS)
    $(CC) $(CPPFLAGS) -MM $^ > .depend;

.PHONY: clean

clean:
    rm -f a3driver.o example32.sequence.o .depend

include .depend

此 Makefile 使用内置 -MM 标志自动生成依赖项。 dependent 目标执行生成带有依赖项的文件 .depend 的命令。 .PHONY: clean 目标是一个特殊目标,实际上不是文件或规则。 clean 目标会删除目标文件和 .depend 文件。

以上是如何为单文件项目创建简单的 C Makefile?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn