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.
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3