Rust 项目中解决依赖重复编译问题:以 objc2 为例
在开发桌面剪贴板同步应用(UniClipboard)过程中,遇到了一个问题:即使只修改与 objc2 库无关的代码,Rust 编译器还是会重新编译 objc2 库,严重影响效率。该应用使用 Rust 处理剪贴板功能,在 macOS 平台使用了 clipboard-rs 库,依赖 objc2 库实现系统剪贴板交互。优化策略包括优化 Cargo 配置、使用 sccache 加速编译等。优化结果包括首次构建时间略有增加、增量构建时间减少80%以上,开发体验大幅改善。通过理解依赖关系、差异化处理、合理利用缓存和权衡取舍,可以显著提高 Rust 项目的开发效率。