在 Linux 中,Makefile 是一个用于自动化编译和构建 C++ 项目的文件
-
创建一个名为
Makefile
的文件。确保文件名的大小写正确,因为 Linux 是区分大小写的。 -
在 Makefile 中,首先指定编译器。通常情况下,我们使用 GNU 编译器集合(GCC)或 Clang 编译器。例如,使用 GCC 编译器的默认设置,可以这样指定编译器:
CC = g++
-
为项目中的源文件指定一个变量。例如,如果你的源文件位于
src
目录下,并且有一个名为main.cpp
的源文件,可以这样指定源文件:SRCS = src/main.cpp
如果你的项目有多个源文件,可以将它们添加到一个列表中:
SRCS = src/main.cpp src/other_file.cpp
-
指定目标可执行文件的名称。这通常是
main
或app
等。将其添加到变量TARGET
中:TARGET = my_program
-
编写编译规则。规则告诉编译器如何根据源文件生成目标可执行文件。这里是一个简单的示例:
$(TARGET): $(SRCS) $(CC) -o $@ $^
这个规则表示,当任何源文件发生更改时,都会重新编译它们并生成名为
my_program
的可执行文件。$@
表示目标可执行文件的名称,$^
表示所有源文件的名称。 -
可以添加一些可选的编译选项、链接选项和库。例如,要添加
-Wall
选项以启用所有警告,可以这样做:CFLAGS = -Wall
要链接一个名为
libexample
的库,可以这样做:LDFLAGS = -lexample
-
如果需要安装生成的可执行文件,可以添加一个名为
install
的目标:install: $(TARGET) install -m 755 $(TARGET) /usr/local/bin/
这将把名为
my_program
的可执行文件安装到/usr/local/bin/
目录下。 -
最后,可以在终端中运行
make
命令来构建项目:make
如果一切顺利,这将生成一个名为
my_program
的可执行文件。如果需要安装程序,可以运行:make install
这是一个基本的 Makefile 示例。根据项目的具体需求,你可能需要对其进行修改和扩展。在实际项目中,你还可以考虑使用像 CMake 这样的构建工具来简化构建过程。