cargo编译时Rust时如何自定义输出目录

我们使用cargo构建Rust程序时,默认会在源代码根目录的target目录里,生成输出文件,以及编译依赖的包。

有时候,我们需要把源代码与输出分开存放。可不可以把target定位在源代码目录外面呢?

当然可以。

使用cargo命令行参数

根据cargo文档 ,第一种方法,就是在使用cargo的build命令的时候,通过--target-dir来指定。

比如我们有一个项目叫hello,在/home/user/hello目录下有cargo.toml。我们就可以进入hello目录以后,通过:

复制代码
cd /home/user/hello
cargo build --target-dir=/tmp/hello

命令,把编译的输出定位在/tmp/hello目录里。

使用cargo的配置文件

命令行参数需要每次执行的时候输入,比较麻烦。

根据cargo文档 ,还可以还可以写死在cargo的配置文件里。

注意是cargo的配置文件,不是项目的配置文件

Cargo的配置文件,是源代码根目录下的.cargo/config.toml文件,也可以针对每个模块建立.cargo/config.toml,还可以是全局的,即用户目录下的配置文件:$HOME/.cargo/config.toml。

在config.toml配置文件里,配置[build] target-dir 项,就可以自定义target目录了。

比如:

复制代码
[build]
target-dir = "/tmp/hello"

在hello里执行

cargo build

或者

cargo run

的时候,输出文件就生成在/tmp/hello目录里了。

相关推荐
Lucky小小吴10 分钟前
开源项目5——Go版本快速管理工具
开发语言·golang·开源
Mr.Jessy22 分钟前
Web APIs 学习第五天:日期对象与DOM节点
开发语言·前端·javascript·学习·html
杨福瑞27 分钟前
数据结构:单链表(2)
c语言·开发语言·数据结构
进化中的码农27 分钟前
Go中的泛型编程和reflect(反射)
开发语言·笔记·golang
咖啡教室37 分钟前
每日一个计算机小知识:ICMP
后端·网络协议
间彧38 分钟前
OpenStack在混合云架构中通常扮演什么角色?
后端
咖啡教室41 分钟前
每日一个计算机小知识:IGMP
后端·网络协议
间彧44 分钟前
云原生技术栈中的核心组件(如Kubernetes、Docker)具体是如何协同工作的?
后端
清空mega1 小时前
从零开始搭建 flask 博客实验(3)
后端·python·flask
音符犹如代码1 小时前
Java并发List实战:CopyOnWriteArrayList原理与ArrayList常见面试题
java·开发语言·面试·list