Heim > Backend-Entwicklung > C++ > Hauptteil

Wie kompiliere und verknüpfe ich mehrere CPP-Dateien zu einer einzigen Binärdatei?

Susan Sarandon
Freigeben: 2024-11-01 09:47:30
Original
636 Leute haben es durchsucht

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

So kompilieren und verknüpfen Sie mehrere .cpp-Dateien zu einer Binärdatei

Dieser Artikel befasst sich mit der Frage des Kompilierens mehrerer .cpp-Dateien .o-Objekte und deren Verknüpfung zu einer einzelnen Binärdatei.

Makefile-Konfiguration

Um dies zu erreichen, kann ein Makefile mit den folgenden Inhalten verwendet werden:

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 $@ $<
Nach dem Login kopieren

Erklärung:

  • SRC_DIR: Gibt das Verzeichnis an, das die Quell-.cpp-Dateien enthält.
  • OBJ_DIR: Gibt das Verzeichnis an, in dem die .o-Objekte erstellt werden.
  • SRC_FILES: Eine Liste aller .cpp-Dateien im SRC_DIR.
  • OBJ_FILES : Eine Liste aller .o-Objekte, die generiert werden.
  • main.exe: Der Name der endgültigen Binärdatei.
  • LDFLAGS: Linker-Flags.
  • CPPFLAGS: C-Präprozessor-Flags.
  • CXXFLAGS: C-Compiler-Flags.

Erstellung von Abhängigkeitsdiagrammen

Um automatisch Abhängigkeiten zwischen Quell- und Objektdateien zu generieren, fügen Sie Folgendes zum Makefile hinzu:

CXXFLAGS += -MMD
-include $(OBJ_FILES:.o=.d)
Nach dem Login kopieren

Best Practices

Dieser Ansatz wird häufig zum Kompilieren und Verknüpfen mehrerer C-Dateien verwendet. Es ist jedoch wichtig, das GNU Make-Handbuch zu Rate zu ziehen, um weitere Anleitungen und erweiterte Optionen zu erhalten.

Das obige ist der detaillierte Inhalt vonWie kompiliere und verknüpfe ich mehrere CPP-Dateien zu einer einzigen Binärdatei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!