首页 >后端开发 >C++ >如何为具有外部依赖项的单文件项目创建简单的 C Makefile?

如何为具有外部依赖项的单文件项目创建简单的 C Makefile?

Susan Sarandon
Susan Sarandon原创
2024-12-10 05:44:16387浏览

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

如何制作简单的 C Makefile

本指南提供了一种简单的方法,以最少的成本为 C 项目创建 Makefile

问题:

您需要使用单个文件 a3driver.cpp 为项目创建一个 Makefile,该文件从“/user/cse232”导入一个类/Examples/example32.sequence.cpp”。目标是生成名为 a3a.exe 的可执行文件。

解决方案:

1.创建Makefile:

在项目目录下创建一个名为Makefile的文件。

2.定义变量:

首先定义将在整个 Makefile 中使用的变量:

CC = g++
CFLAGS = -g
LDFLAGS = -g
LDLIBS = -lstdc++ -lm
  • CC: C 编译器。
  • CFLAGS: C 源代码的编译标志文件。
  • LDFLAGS: 链接标志。
  • LDLIBS: 链接所需的库。

3.指定目标:

接下来,定义项目的目标:

all: a3a.exe
a3a.exe: a3driver.o example32.sequence.o
a3driver.o: a3driver.cpp
example32.sequence.o: example32.sequence.cpp
  • all 是将构建可执行文件的默认目标。
  • a3a .exe 是可执行目标。

4.定义依赖关系:

定义每个目标的依赖关系:

  • a3a.exe 依赖于 a3driver.o 和 example32.sequence.o。
  • a3driver .o 取决于a3driver.cpp.
  • example32.sequence.o 依赖于 example32.sequence.cpp.

5.定义规则:

指定将为每个目标及其依赖项执行的命令:

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

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

a3a.exe: a3driver.o example32.sequence.o
    $(CC) $(LDFLAGS) -o a3a.exe a3driver.o example32.sequence.o $(LDLIBS)
  • 这些规则编译源文件并链接它们以创建可执行文件。

6。定义清理目标(可选):

您还可以定义一个清理目标来删除所有构建工件:

clean:
    rm -f a3driver.o example32.sequence.o a3a.exe

7.运行 Makefile:

要构建项目,请从命令行运行 make。这将创建 a3a.exe 可执行文件。

注意:

由于基于 Unix 的系统不使用可执行文件的文件扩展名,因此 a3a.exe 目标没有Makefile 中的扩展名。

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

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