以下是一个简单的 C++ 代码示例以及对应的 Makefile 文件的使用方法。
示例代码:
假设我们有一个简单的 C++ 程序,包含两个文件:main.cpp
和func.cpp
。
main.cpp
内容如下:
#include <iostream>
#include "func.h"
int main() {
std::cout << "The result of adding 3 and 5 is: " << add(3, 5) << std::endl;
return 0;
}
func.cpp
内容如下:
#include "func.h"
int add(int a, int b) {
return a + b;
}
func.h
内容如下:
#ifndef FUNC_H
#define FUNC_H
int add(int a, int b);
#endif
Makefile 文件:
# 定义编译器
CXX = g++
# 定义编译选项
CXXFLAGS = -std=c++11 -Wall
# 定义目标可执行文件
TARGET = my_program
# 定义所有的源文件
SRCS = main.cpp func.cpp
# 定义所有的头文件
INCLUDES = func.h
# 根据源文件生成对应的目标文件(.o 文件)
OBJS = $(SRCS:.cpp=.o)
# 第一个目标是默认目标,通常是生成可执行文件
$(TARGET): $(OBJS)
$(CXX) $(CXXFLAGS) -o $@ $^
# 模式规则,用于从.cpp 文件生成.o 文件
%.o: %.cpp $(INCLUDES)
$(CXX) $(CXXFLAGS) -c $< -o $@
# 清理规则,用于删除生成的目标文件和可执行文件
clean:
rm -f $(OBJS) $(TARGET)
使用方法:
- 将上述代码和 Makefile 文件放在同一个目录下。
- 要编译程序,在命令行中输入
make
。make
命令会根据 Makefile 中的规则自动编译源文件,并生成可执行文件my_program
。 - 运行可执行文件,在命令行中输入
./my_program
。 - 如果想要清理生成的文件(目标文件和可执行文件),在命令行中输入
make clean
。
在这个 Makefile 中,我们首先定义了编译器g++
和编译选项,然后指定了目标可执行文件、源文件和头文件。接着,我们定义了如何从源文件生成目标文件,以及如何从目标文件生成可执行文件。最后,我们定义了一个清理规则,方便删除生成的文件。