在 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 这样的构建工具来简化构建过程。