Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mencipta Makefile untuk Menyusun dan Memautkan Berbilang Fail .cpp dengan Cekap?

Bagaimanakah Saya Boleh Mencipta Makefile untuk Menyusun dan Memautkan Berbilang Fail .cpp dengan Cekap?

Linda Hamilton
Lepaskan: 2024-11-01 02:38:28
asal
294 orang telah melayarinya

How Can I Create a Makefile to Efficiently Compile and Link Multiple .cpp Files?

Bolehkah Anda Menyusun dan Memautkan Berbilang Fail .cpp Dengan Cekap?

Persoalan berpusat di sekitar membuat Makefile yang menyusun berbilang fail .cpp dalam direktori sumber yang ditentukan (src/), mengubahnya menjadi fail .o yang sepadan dalam direktori objek berasingan (obj/), dan akhirnya memautkan fail .o yang terhasil ke dalam binari boleh laku dalam direktori akar projek (./).

Pelaksanaan Makefile

Untuk mencapai ini dalam Makefile, anda boleh mentakrifkan pembolehubah dan peraturan berikut:

SRC_DIR = src/
OBJ_DIR = obj/
SRC_FILES = $(wildcard $(SRC_DIR)/*.cpp)
OBJ_FILES = $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRC_FILES))
LDFLAGS = ... # Linker flags
CPPFLAGS = ... # Preprocessor flags
CXXFLAGS = ... # Compiler flags

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

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

Makefile ini akan menjana senarai .cpp fail dalam direktori src/ dan simpan dalam pembolehubah SRC_FILES. Ia kemudiannya akan mengubah senarai ini menjadi senarai fail .o yang sepadan dalam direktori obj/, yang akan disimpan dalam pembolehubah OBJ_FILES.

Pengkompil g akan digunakan untuk menyusun setiap fail .cpp ke dalam fail yang sepadan. fail .o dan pemaut g akan digunakan untuk memautkan semua fail .o bersama-sama untuk mencipta binari boleh laku terakhir, main.exe.

Amalan Baik lwn. Pendekatan Standard

Walaupun pendekatan ini berfungsi untuk menyusun dan memautkan berbilang fail .cpp, perlu diingat bahawa terdapat cara yang lebih standard dan cekap untuk mencapai matlamat yang sama.

Salah satu pendekatan sedemikian melibatkan penggunaan sistem binaan seperti CMake atau Bazel. Sistem ini menyediakan set alat dan ciri yang lebih komprehensif untuk mengurus proses penyusunan dan pemautan, termasuk pengiraan pergantungan automatik dan sokongan merentas platform.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Makefile untuk Menyusun dan Memautkan Berbilang Fail .cpp dengan Cekap?. 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