首页  >  文章  >  后端开发  >  如何将多个 .cpp 文件编译并链接到单个二进制文件中?

如何将多个 .cpp 文件编译并链接到单个二进制文件中?

Susan Sarandon
Susan Sarandon原创
2024-11-01 09:47:30637浏览

How to Compile and Link Multiple .cpp Files into a Single Binary?

如何将多个 .cpp 文件编译并链接为二进制文件

本文旨在解决将多个 .cpp 文件编译为二进制文件的问题.o 对象并将它们链接到单个二进制文件中。

Makefile 配置

要实现此目的,可以使用包含以下内容的 Makefile:

SRC_DIR = ./src
OBJ_DIR = ./obj
SRC_FILES = $(wildcard $(SRC_DIR)/*.cpp)
OBJ_FILES = $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRC_FILES))

main.exe: $(OBJ_FILES)
    g++ $(LDFLAGS) -o $@ $^

$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
    g++ $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<

说明:

  • SRC_DIR:指定包含源 .cpp 文件的目录。
  • OBJ_DIR: 表示将创建 .o 对象的目录。
  • SRC_FILES: SRC_DIR 中所有 .cpp 文件的列表。
  • OBJ_FILES : 将生成的所有 .o 对象的列表。
  • main.exe: 最终二进制文件的名称。
  • LDFLAGS: 链接器标志。
  • CPPFLAGS: C 预处理器标志。
  • CXXFLAGS: C 编译器标志。

依赖关系图生成

要自动生成源文件和目标文件之间的依赖关系,请将以下内容添加到 Makefile:

CXXFLAGS += -MMD
-include $(OBJ_FILES:.o=.d)

最佳实践

这种方法通常用于编译和链接多个 C 文件。然而,有必要参考 GNU Make 手册来获取更多指导和高级选项。

以上是如何将多个 .cpp 文件编译并链接到单个二进制文件中?的详细内容。更多信息请关注PHP中文网其他相关文章!

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