如何在多个体系结构中使用带有gcc-march=native的ccache



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

如何确保在利用缓存的同时获得正确的对象文件?

ccache不存储体系结构,但它存储第一次构建对象时使用的编译器标志。因此,您的问题的一个潜在解决方案可能是使用一个瘦包装器脚本,该脚本将-march=native扩展到实际的标志集(例如,使用类似的东西),然后将它们传递给ccache

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

您可以确保在构建场中使用具有相同架构的机器。除此之外,我不知道你怎么能解决那个问题。

还要记住,如果您使用-march=native,那么任何想要运行二进制文件的人都需要具有相同(或者可能更新但向后兼容)的机器体系结构。这可能是个问题,也可能不是个问题。

相关内容

  • 没有找到相关文章

最新更新