我正在尝试以编程方式在运行时检测给定CPU的最佳GCC -march
标志。我正在开发的程序将根据用户的CPU架构下载优化的二进制文件。所以我必须检测它在这个列表中的架构:
core2
nehalem
westmere
sandybridge
ivybridge
haswell
broadwell
generic
(以上都失败了)。喜欢这个命令:gcc -march=native -Q --help=target | grep -- '-march=' | cut -f3
,当然没有调用GCC(我无法嵌入它)。我找到了GCC的函数__builtin_cpu_is
,但它并不支持所有架构。
我正在寻找一种可移植的方式,至少对于GNU / Linux,Windows和OSX而言。我只打算使用GCC作为编译器。