Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya boleh menyusun dan memautkan berbilang fail .cpp dalam projek menggunakan Makefile?

Bagaimanakah saya boleh menyusun dan memautkan berbilang fail .cpp dalam projek menggunakan Makefile?

Linda Hamilton
Lepaskan: 2024-11-01 00:15:02
asal
780 orang telah melayarinya

How can I compile and link multiple .cpp files in a project using a Makefile?

Menyusun dan Memautkan Berbilang Fail .cpp dengan Makefile

Dalam pembangunan projek, mengurus berbilang fail sumber boleh menyusahkan. Makefile menyediakan cara yang diperkemas untuk mengautomasikan proses penyusunan dan pemautan. Dalam kes ini, matlamatnya ialah untuk menyusun semua fail ".cpp" dalam direktori "/src" kepada fail ".o" dalam direktori "/obj", dan kemudian memautkannya ke dalam boleh laku binari dalam folder akar.

Pelaksanaan Makefile

Untuk mencapai ini, Makefile boleh dibuat dengan perkara berikut kandungan:

<code class="makefile"># Define directories
SRC_DIR = src
OBJ_DIR = obj

# Get all .cpp files in the src directory
SRC_FILES = $(wildcard ${SRC_DIR}/*.cpp)

# Derive .o files from .cpp files
OBJ_FILES = $(patsubst ${SRC_DIR}/%.cpp, ${OBJ_DIR}/%.o, ${SRC_FILES})

# Linker flags
LDFLAGS = ...

# C compiler flags
CPPFLAGS = ...

# C++ compiler flags
CXXFLAGS = -std=c++11 -MMD -MP

# Target binary
main.exe: ${OBJ_FILES}
    g++ ${LDFLAGS} -o $@ $^

# Compile .cpp to .o in obj/ directory
${OBJ_DIR}/%.o: ${SRC_DIR}/%.cpp
    g++ ${CPPFLAGS} ${CXXFLAGS} -c -o $@ $<

# Include automatically generated dependencies
-include ${OBJ_FILES:.o=.d}</code>
Salin selepas log masuk

Penjelasan

  • Fail Make mentakrifkan direktori untuk sumber, fail objek dan binari akhir.
  • Ia mengenal pasti semua fail ".cpp" dalam direktori "/src" dan mencipta senarai ".o" yang sepadan fail.
  • Bendera pengkompil tersuai boleh ditakrifkan mengikut keperluan.
  • Sasaran utama "main.exe" bergantung pada semua fail ".o".
  • Peraturan ditetapkan untuk menyusun setiap fail ".cpp" ke fail ".o" dalam direktori "/obj".
  • Penjanaan graf pergantungan automatik ialah didayakan menggunakan bendera "-MMD", yang membantu mengurus kebergantungan berdasarkan pengubahsuaian sumber.
  • Bendera "-MP" memastikan bahawa fail kebergantungan yang dijana diletakkan dalam direktori yang sama dengan fail sumber, memudahkan penyelenggaraan.

Amalan Terbaik

Pendekatan ini untuk menyusun dan memautkan berbilang Fail ".cpp" biasanya digunakan dan mengikut amalan standard. Ia memberikan fleksibiliti dalam mengurus fail sumber melalui Makefile, sambil memastikan penyusunan dan pemautan yang cekap.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menyusun dan memautkan berbilang fail .cpp dalam projek 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