How to Compile and Link Multiple .cpp Files into a Binary
This article aims to address the question of compiling multiple .cpp files into .o objects and linking them into a single binary.
Makefile Configuration
To accomplish this, a Makefile can be utilized with the following contents:
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 $@ $<
Explanation:
Dependency Graph Generation
To automatically generate dependencies between source and object files, add the following to the Makefile:
CXXFLAGS += -MMD -include $(OBJ_FILES:.o=.d)
Best Practices
This approach is commonly used for compiling and linking multiple C files. However, it's essential to refer to the GNU Make Manual for additional guidance and advanced options.
The above is the detailed content of How to Compile and Link Multiple .cpp Files into a Single Binary?. For more information, please follow other related articles on the PHP Chinese website!