gcc 的 -march=native 选项根据主机的体系结构生成不同的代码。 ccache 不会在其哈希中存储机器架构,这意味着如果您更改机器的架构,例如切换到高性能 VPS 节点,缓存的对象文件可能会不兼容。
如何确保获得正确的目标文件,同时仍然利用缓存?
最佳答案
ccache
不存储体系结构,但它确实存储第一次构建对象时使用的编译器标志。因此,解决您的问题的一个潜在解决方案可能是使用一个瘦包装脚本,将 -march=native
扩展为实际的标志集(例如使用类似 this 的东西),然后将它们传递给 ccache
.
(当然,我会将实际的实现作为练习留给读者。)
关于c++ - 如何在多个架构中将 ccache 与 gcc -march=native 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36505275/