阅读量:0
在 Linux 下,使用 Makefile 可以帮助你自动化编译 C++ 项目。下面是一个简单的示例,展示了如何编写一个基本的 Makefile。
假设你的项目包含以下源文件:
- main.cpp
- foo.cpp
- bar.cpp
并且你需要链接一个外部库,例如 pthread。
首先,创建一个名为 Makefile 的文件,并在其中添加以下内容:
# 编译器
CXX = g++
# 编译选项
CXXFLAGS = -Wall -std=c++11
# 链接选项
LDFLAGS = -lpthread
# 目标可执行文件
TARGET = my_program
# 源文件
SRCS = main.cpp foo.cpp bar.cpp
# 对象文件
OBJS = $(SRCS:.cpp=.o)
# 默认规则
all: $(TARGET)
# 链接目标文件生成可执行文件
$(TARGET): $(OBJS)
$(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
# 编译源文件生成对象文件
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
# 清理生成的文件
clean:
rm -f $(TARGET) $(OBJS)
这个 Makefile 定义了以下规则:
- 使用 g++ 编译器编译 C++ 源文件。
- 使用
-Wall和-std=c++11作为编译选项。 - 使用
-lpthread作为链接选项。 - 定义目标可执行文件为
my_program。 - 定义源文件列表
SRCS。 - 使用源文件列表生成对象文件列表
OBJS。 - 定义默认规则
all,用于构建目标可执行文件。 - 定义链接规则,用于将对象文件链接成可执行文件。
- 定义编译规则,用于将源文件编译成对象文件。
- 定义清理规则
clean,用于删除生成的可执行文件和对象文件。
要构建项目,请在终端中运行 make 命令。要清理生成的项目文件,请运行 make clean 命令。
以上就是关于“Linux下C++如何编写Makefile”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm