Bagaimanakah cara saya menyusun dan memautkan fail sumber C ke dalam binari menggunakan Makefile?

Patricia Arquette
Lepaskan: 2024-11-03 05:01:02
asal
593 orang telah melayarinya

How do I compile and link C   source files into a binary using a Makefile?

Menyusun dan Memautkan Fail Sumber C dalam Makefile

Anda bertujuan untuk mencipta Makefile yang menyusun semua fail sumber C dalam folder /src dan memautkannya ke dalam binari dalam folder root /projek. Begini cara anda boleh mencapainya:

Konfigurasi Makefile

  1. Tentukan pembolehubah berikut:
SRC_DIR := src
OBJ_DIR := obj
SRC_FILES := $(wildcard $(SRC_DIR)/*.cpp)
OBJ_FILES := $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRC_FILES))
Salin selepas log masuk
  1. Nyatakan bendera pengkompil dan pemaut:
LDFLAGS := ...
CPPFLAGS := ...
CXXFLAGS := ...
Salin selepas log masuk
  1. Buat peraturan sasaran untuk membina binari:
main.exe: $(OBJ_FILES)
   g++ $(LDFLAGS) -o $@ $^
Salin selepas log masuk
  1. Buat peraturan kompilasi untuk setiap fail sumber C:
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
   g++ $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
Salin selepas log masuk

Fail Make ini akan menyusun setiap fail sumber dalam direktori /src ke dalam fail .o yang sepadan dalam direktori /obj. Ia kemudian akan memautkan semua fail .o untuk mencipta binari main.exe dalam direktori /project.

Amalan Terbaik

Pendekatan ini biasanya dianggap sebagai pendekatan biasa untuk menyusun dan memautkan fail sumber C dalam projek. Walau bagaimanapun, terdapat amalan terbaik tertentu untuk diikuti:

  1. Umumkan proses: Benarkan penyusunan semua fail sumber dalam direktori tanpa perlu menentukan setiap fail secara manual.
  2. Automasikan penjanaan pergantungan: Gunakan bendera seperti -MMD untuk menjana graf pergantungan secara automatik, mengurangkan overhed penyelenggaraan.
  3. Dokumentasi rujukan: Sentiasa rujuk GNU Make Manual untuk pemahaman menyeluruh tentang sintaks dan keupayaan Makefile.

Atas ialah kandungan terperinci Bagaimanakah cara saya menyusun dan memautkan fail sumber C ke dalam binari menggunakan Makefile?. 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