gcc的-march = native选项根据主机的体系结构生成不同的代码。 ccache不会将计算机体系结构存储在其哈希中,这意味着如果您更改计算机的体系结构(例如,切换到高性能VPS节点),则高速缓存的目标文件可能不兼容。

如何在仍然利用缓存的同时确保获得正确的目标文件?

最佳答案

ccache不会存储体系结构,但是会存储首次构建对象时使用的编译器标志。因此,解决此问题的潜在方法可能是使用瘦包装器脚本,该脚本将-march=native扩展为实际的标志集(例如使用诸如this之类的标志),然后再将其传递给ccache

(我当然会将实际实现留给读者练习。)

关于c++ - 如何在多个体系结构中将ccache与gcc -march = native一起使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36505275/

10-09 13:22