ide*_*n42 14 build rust rust-cargo
使用过CMake之后,我已经习惯了使用CMake鼓励的源外构建.如何使用Cargo完成源外构建?
再次使用in-source-builds感觉就像倒退了一步:
Cargo.lock和target/,更糟糕的是,递归地暴露自己的内容.*.rs在target目录中添加文件作为构建间接deps的一部分,因此对所有*.rs文件进行操作可能会意外地拾取不在隐藏目录中的其他文件,因此即使在开发工具之后也不会被忽略已配置.虽然可以解决所有这些问题,但我宁愿只有一个外部构建路径并保持源目录的原始状态.
Luk*_*odt 10
您可以通过配置文件(键)或环境变量()指定文件夹的目录target/.以下是使用配置文件的示例:build.target-dirCARGO_TARGET_DIR
假设您想要一个目录,~/work/在该目录中要保存Cargo项目(~/work/foo/),并在其旁边保存目标目录(~/work/my-target/).
$ cd ~/work
$ cargo new --bin foo
$ mkdir .cargo
$ $EDITOR .cargo/config
Run Code Online (Sandbox Code Playgroud)
然后将以下内容插入配置文件中:
[build]
target-dir = "./my-target"
Run Code Online (Sandbox Code Playgroud)
如果您构建了正常的货物项目目录:
$ cd foo
$ cargo build
Run Code Online (Sandbox Code Playgroud)
你会注意到没有target/目录,但一切都在~/work/my-target/.
但是,Cargo.lock仍然保存在Cargo项目目录中,但这有点意义.对于可执行文件,您应该将Cargo.lock文件检入您的git!对于图书馆,你不应该.我想不得不忽略一个文件比忽略整个文件夹更好.
最后,有一些注意事项可以改变target-dir,它们在引入该功能的PR中列出.
| 归档时间: |
|
| 查看次数: |
1710 次 |
| 最近记录: |