linux

C++ Linux下如何编写Makefile

小樊
55
2025-04-24 05:44:53
栏目: 编程语言

在Linux下编写Makefile是为了简化编译过程,使得编译多个源文件和库变得更加容易。以下是一个简单的Makefile示例,以及如何使用它的说明。

首先,创建一个名为Makefile的文件(没有文件扩展名),然后在其中输入以下内容:

# 编译器设置
CXX = g++

# 编译选项
CXXFLAGS = -Wall -std=c++11

# 目标可执行文件名
TARGET = my_program

# 源文件列表
SOURCES = main.cpp file1.cpp file2.cpp

# 对象文件列表
OBJECTS = $(SOURCES:.cpp=.o)

# 默认目标规则
all: $(TARGET)

# 链接目标可执行文件
$(TARGET): $(OBJECTS)
	$(CXX) $(CXXFLAGS) -o $@ $^

# 编译源文件为对象文件
%.o: %.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

# 清理生成的文件
clean:
	rm -f $(OBJECTS) $(TARGET)

这个Makefile定义了一个简单的C++项目,其中包含一个可执行文件my_program,它依赖于三个源文件:main.cppfile1.cppfile2.cpp。编译器设置为g++,编译选项包括-Wall(显示所有警告)和-std=c++11(使用C++11标准)。

在这个Makefile中,我们定义了几个规则:

  1. all:默认目标规则,用于构建整个项目。
  2. $(TARGET):链接目标可执行文件的规则。
  3. %.o: %.cpp:编译源文件为对象文件的通用规则。
  4. clean:清理生成的文件(对象文件和可执行文件)。

要使用这个Makefile,只需在终端中导航到包含Makefile的目录,然后运行make命令。这将根据Makefile中的规则编译项目并生成可执行文件。

如果需要清理生成的文件,可以运行make clean命令。

0
看了该问题的人还看了