Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从rust proc宏中获取目标文件夹_Rust_Rust Proc Macros - Fatal编程技术网

从rust proc宏中获取目标文件夹

从rust proc宏中获取目标文件夹,rust,rust-proc-macros,Rust,Rust Proc Macros,正如标题所示,我正在尝试检索目标文件夹以保存一些中间编译产品。我需要实际的目标文件夹,因为我想在编译之间缓存一些值,以显著加快它们的速度(否则我可以只使用临时目录) 我目前的方法是解析rustc调用的参数(通过std::env::args())并找到--out目录,代码如下所示: //首先,我们获取rustc调用的参数 让mut args=std::env::args(); //然后我们循环遍历它们,并找到“out dir”的值 让mut out_dir=无; 而让一些(arg)=args.ne

正如标题所示,我正在尝试检索目标文件夹以保存一些中间编译产品。我需要实际的目标文件夹,因为我想在编译之间缓存一些值,以显著加快它们的速度(否则我可以只使用临时目录)

我目前的方法是解析rustc调用的参数(通过
std::env::args()
)并找到--out目录,代码如下所示:

//首先,我们获取rustc调用的参数
让mut args=std::env::args();
//然后我们循环遍历它们,并找到“out dir”的值
让mut out_dir=无;
而让一些(arg)=args.next(){
如果arg==“--out dir”{
out_dir=args.next();
}
}
//最后,我们通过删除所有尾随目录来清除_dir,直到它以target结尾
让mut out_dir=PathBuf::from(out_dir.expect(“未能找到_dir”);
虽然out_dir.以(“target”)结尾{
如果!out_dir.pop(){
//我们的目录用完了。。。
惊慌失措!(“找不到_dir”);
}
}
外卢迪尔
通常我会使用环境变量之类的东西(想想
OUT\u DIR
),但我找不到任何可以帮助我的东西


那么有没有一个合适的方法来做到这一点呢?或者我应该向rust开发团队提交一个问题吗?

查看
OUT\u DIR
是正确的方法,我很困惑它并不总是设置好的。如果您可以控制使用宏的板条箱,则可以添加一个(简单的)构建脚本,从而设置
OUT\u DIR
变量


我必须承认,这有点老套。我已经为cargo创建了一个始终设置
OUT\u DIR
,这将使这个问题变得微不足道。

查看
OUT\u DIR
是正确的方法,我对它不总是设置感到困惑。如果您可以控制使用宏的板条箱,则可以添加一个(简单的)构建脚本,从而设置
OUT\u DIR
变量

我必须承认,这有点老套。我已经为cargo创建了一个始终设置
OUT\u DIR
,这将使这个问题变得微不足道。

。不过,我不知道在运行编译器时是否也设置了…。我不知道在运行编译器时是否也设置了…