Rust 项目中解决依赖重复编译问题:以 objc2 为例
在开发桌面剪贴板同步应用(UniClipboard)时,遇到了一个令人蛋疼的问题:每次构建时 Rust 编译器会重新编译 objc2 库,严重影响开发效率。问题主要集中在 objc2 库编译耗时长、无谓的重复编译和循环依赖等方面。为解决这一问题,优化方案包括优化 Cargo 配置、使用 sccache 加速编译等。通过这些优化策略,首次完整构建虽略有增加,但对非依赖代码的修改后,构建时间减少了80%以上,大大提高了开发效率。经验总结包括深入了解依赖关系、差异化处理、合理利用编译缓存以及权衡取舍等。这些优化技巧适用于处理objc2库及其他慢速编译依赖的Rust项目,有助于提高开发效率。