Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyusun dan Memautkan Berbilang Fail C ke dalam Boleh Laku Menggunakan Makefiles?

Bagaimana untuk Menyusun dan Memautkan Berbilang Fail C ke dalam Boleh Laku Menggunakan Makefiles?

DDD
DDDasal
2024-10-30 22:07:30631semak imbas

How to Compile and Link Multiple C   Files into an Executable Using Makefiles?

Menyusun dan Memautkan Fail dalam Makefiles

Tugas yang dinyatakan dalam soalan ialah untuk menyusun berbilang fail .cpp ke dalam fail objek .o dan seterusnya pautkan fail ini ke dalam binari boleh laku. Begini cara ia boleh dicapai menggunakan Makefile:

Konfigurasi Makefile

SRC_DIR = ./src
OBJ_DIR = ./obj
SRC_FILES = $(wildcard $(SRC_DIR)/*.cpp)
OBJ_FILES = $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRC_FILES))
LDFLAGS = ... # Any additional linker flags
CPPFLAGS = ... # Any additional preprocessor flags
CXXFLAGS = ... # Any additional compiler flags

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

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

Pecahan Makefile

  • SRC_DIR dan OBJ_DIR mentakrifkan direktori sumber dan objek, masing-masing.
  • SRC_FILES menggunakan fungsi wildcard untuk mengumpulkan semua fail .cpp dalam SRC_DIR.
  • OBJ_FILES mengubah senarai SRC_FILES dengan menukarnya menjadi objek laluan fail dalam OBJ_DIR.
  • Pembolehubah LDFLAGS, CPPFLAGS dan CXXFLAGS memegang sebarang bendera tambahan yang perlu dihantar kepada pemaut, prapemproses dan pengkompil, masing-masing.
  • Main.exe sasaran bergantung pada semua fail .o dan mencipta binari akhir.
  • Peraturan untuk menyusun fail .cpp ke dalam fail .o menentukan pengkompil yang hendak digunakan, bersama-sama dengan parameternya.

Pengurusan Pergantungan (Pilihan)

Untuk mengautomasikan pengurusan pergantungan, tambah baris berikut pada penghujung Makefile:

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

Ini membolehkan penjanaan automatik peraturan makefile yang mengesan kebergantungan antara fail sumber dan objek, memudahkan penyelenggaraan.

Kesimpulan

Pendekatan ini memenuhi keperluan untuk menyusun berbilang fail .cpp dan memautkannya ke dalam binari. Ia juga dianggap sebagai amalan standard dan digunakan secara meluas dalam pembangunan perisian.

Atas ialah kandungan terperinci Bagaimana untuk Menyusun dan Memautkan Berbilang Fail C ke dalam Boleh Laku Menggunakan Makefiles?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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