Bagaimana untuk Menyusun dan Memautkan Berbilang Fail .cpp ke dalam Perduaan Tunggal?

Susan Sarandon
Lepaskan: 2024-11-01 09:47:30
asal
636 orang telah melayarinya

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

Cara Menghimpun dan Memautkan Berbilang Fail .cpp ke dalam Binari

Artikel ini bertujuan untuk menangani persoalan menyusun berbilang fail .cpp ke dalam .o objek dan memautkannya ke dalam satu binari.

Konfigurasi Makefile

Untuk mencapai ini, Makefile boleh digunakan dengan kandungan berikut:

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 $@ $<
Salin selepas log masuk

Penjelasan:

  • SRC_DIR: Menentukan direktori yang mengandungi fail .cpp sumber.
  • OBJ_DIR: Menunjukkan direktori tempat objek .o akan dibuat.
  • SRC_FILES: Senarai semua fail .cpp dalam SRC_DIR.
  • OBJ_FILES : Senarai semua objek .o yang akan dijana.
  • main.exe: Nama binari akhir.
  • LDFLAGS: Bendera pemaut.
  • CPPFLAGS: Bendera prapemproses C.
  • CXXFLAGS: Bendera pengkompil C.

Penjanaan Graf Ketergantungan

Untuk menjana kebergantungan secara automatik antara fail sumber dan objek, tambahkan yang berikut pada Makefile:

CXXFLAGS += -MMD
-include $(OBJ_FILES:.o=.d)
Salin selepas log masuk

Amalan Terbaik

Pendekatan ini biasanya digunakan untuk menyusun dan memautkan berbilang fail C. Walau bagaimanapun, adalah penting untuk merujuk kepada GNU Make Manual untuk panduan tambahan dan pilihan lanjutan.

Atas ialah kandungan terperinci Bagaimana untuk Menyusun dan Memautkan Berbilang Fail .cpp ke dalam Perduaan Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!