在Linux环境下,使用Rust编写Makefile可以帮助你自动化构建和测试你的Rust项目。以下是一个简单的示例,展示了如何编写一个基本的Makefile来构建和测试一个Rust项目。
假设你的项目结构如下:
my_project/
├── Cargo.toml
├── src
│ └── main.rs
└── Makefile
在这个项目中,Cargo.toml
是Rust项目的清单文件,src/main.rs
是项目的入口文件。
下面是一个简单的 Makefile
示例:
# 定义变量
CARGO = cargo
BUILD_DIR = target/debug
TEST_DIR = target/test
# 默认目标
all: build
# 构建项目
build:
$(CARGO) build
# 运行测试
test:
$(CARGO) test
# 清理构建目录
clean:
$(CARGO) clean
# 运行项目
run: build
$(BUILD_DIR)/my_project
# 运行测试并生成覆盖率报告
coverage:
CARGO_INCREMENTAL=0 $(CARGO) test --release -- --nocapture
.PHONY: all build test clean run coverage
变量定义:
CARGO
:指定使用 cargo
命令。BUILD_DIR
:指定构建目录,默认是 target/debug
。TEST_DIR
:指定测试目录,默认是 target/test
。默认目标:
all
:默认目标,执行 build
。构建项目:
build
:使用 cargo build
命令构建项目。运行测试:
test
:使用 cargo test
命令运行测试。清理构建目录:
clean
:使用 cargo clean
命令清理构建目录。运行项目:
run
:先构建项目,然后运行生成的可执行文件。运行测试并生成覆盖率报告:
coverage
:使用 cargo test
命令运行测试,并生成覆盖率报告。CARGO_INCREMENTAL=0
禁用增量编译以提高覆盖率报告的准确性。伪目标:
.PHONY
:声明伪目标,确保这些目标总是被执行,即使存在同名的文件。Makefile
文件中。make
命令来构建项目。make test
命令来运行测试。make clean
命令来清理构建目录。make run
命令来运行项目。make coverage
命令来运行测试并生成覆盖率报告。通过这种方式,你可以轻松地自动化Rust项目的构建、测试和运行过程。