c++ - 如何在多个架构中将 ccache 与 gcc -march=native 一起使用?

标签 c++ gcc amazon-ec2 ccache

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

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

最佳答案

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

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

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

相关文章:

c - Unix:使用 Make 进行项目管理

c++ - gcov 函数未执行,但行已执行

linux - 如何正确设置 EC2 负载平衡以允许实时文件同步?

java - 如何获取正在运行的实例的可用区详细信息

PHP 扩展目录与 YUM

c++ - 我怎样才能在 C++ 中将一个字符转换为数组字符

c++ - Qt:窗口周围的阴影

c - 为什么我运行这个 C 代码时 CPU 核心使用率有一个开关?

c++ - 即使没有要复制的对象,复制构造函数也会自动调用吗?

c++ - 在 C++ 代码中使用 C 风格的注释是一种不好的做法吗?