是否可以将单个共享目录用作所有项目的Cargo目标目录?

问题描述 投票:1回答:1

Cargo具有--target-dir标志,该标志指定用于存储临时或缓存的构建工件的目录。您也可以在~/.cargo/config文件中在用户范围内进行设置。我想将其设置为单个共享目录,以简化维护。

我看到一些工件目录在目标目录中带有一些唯一的(?)散列后缀,看起来很安全,但是最终产品没有后缀散列,对于名称冲突而言,散列似乎并不安全。我不确定,因为我不是货运专家。

我尝试将~/.cargo/config设置为

[build]
target-dir = "./.build"

我最初的意图是使用项目的本地./.build目录,但是Cargo以某种方式将所有构建文件都放置在~/.build目录中。我很好奇,将每个项目的所有构建文件都放在一个共享的构建目录中会发生什么。

到目前为止,它在几个不同的项目中都运行良好,但是为几个示例工作并不意味着它已被设计或保证可以在每种情况下都可以使用。

就我而言,我正在使用单个共享构建目录,用于用户所有工作区的所有项目。不仅在工作区中投影。从字面上看,用户的每个工作区中的每个项目。据我所知,Cargo旨在与本地target目录一起使用。如果旨在仅使用本地目录,则共享的构建目录可能会引起一些问题。

  • 锈/货物1.38.0。
rust rust-cargo
1个回答
0
投票

是的,这样做是为了安全。

我同意以下评论,可能有更好的方法可以实现您的目标。 Workspaces是一小组箱子的简单解决方案,sccache是更原则的缓存机制。

另请参见:

© www.soinside.com 2019 - 2024. All rights reserved.