Termux下cargo运行Rust提示auto-ref生成1警告的问题咨询
警告原因说明
你看到的编译警告和你编写的Rust测试代码无关,不需要调整代码逻辑。
你贴出的cargo运行输出里已经给出了完整警告内容:
warning: Hard linking files in the incremental compilation cache failed. Copying files instead. Consider moving the cache directory to a file system which supports hard linking in session dir
/data/data/com.termux/files/home/auto-ref/target/debug/incremental/auto_ref-2c1jpkoha1tv/s-gbbxgywkr4-kv6r95-working
这是Termux环境的文件系统特性导致的提示:Termux默认使用的文件系统不支持硬链接,cargo进行增量编译缓存时原本会通过硬链接节省磁盘占用,硬链接创建失败后会自动退化为复制文件的方式完成编译,整个过程不影响最终生成程序的运行逻辑。
你的auto-ref规则测试结果
你的代码运行结果完全符合Rust的自动引用/解引用规则:
- 你为
Bar结构体派生了Copy、Clonetrait,其实例为可按位复制的类型 - 虽然
foo方法定义为按值接收self,但你使用&bar(Bar类型的不可变引用)调用方法时,Rust会自动解引用,拷贝引用指向的Bar实例传入方法,因此程序正常输出Bar(3)是完全符合预期的 - 你编写的测试代码本身没有触发任何Rust语法/逻辑层面的编译器警告,cargo统计的1条警告就是上述文件系统硬链接不兼容的环境提示
可选优化配置
如果不想每次编译都看到这条无关警告,可以在cargo配置文件~/.cargo/config.toml中添加如下配置,直接禁用硬链接缓存逻辑:
[build] hard-links = false
内容的提问来源于stack exchange,提问作者SebastianJL
相关产品推荐
相关产品推荐

