文件 cpuid.h 的作用是什么?

文件 cpuid.h 的作用是什么?

我正在尝试从源代码构建 GLIBC 2.14。我不断收到找不到 cpuid.h 的错误消息。

该文件包含什么内容以及它的用途是什么?

我看到 cpuid.h 被放置在两个不同的位置,即。

/usr/lib/gcc/x86_64-redhat-linux/4.3.0/include/cpuid.h
/usr/src/kernels/2.6.25-14.fc9.x86_64/include/config/x86/cpuid.h

我还发现这两个文件是不同的,运行一个简单的 diff 告诉我 -:

diff --brief /usr/lib/gcc/x86_64-redhat-linux/4.3.0/include/cpuid.h /usr/src/kernels/2.6.25-14.fc9.x86_64/include/config/x86/cpuid.h
Files /usr/lib/gcc/x86_64-redhat-linux/4.3.0/include/cpuid.h and /usr/src/kernels/2.6.25-14.fc9.x86_64/include/config/x86/cpuid.h differ

什么是 cpuid.h,它通常包含什么以及它的用途是什么?

答案1

cpuid.h包含汇编语言片段的定义,以从某些 CPU 中获取低级信息,以及程序可能用来确定其运行的 CPU 类型以及可用功能的各种数字常量的名称。 (例如,如果程序想要使用某些 CPU 上可用的特殊矩阵数学指令,它可以在尝试使用这些指令之前检查这些指令是否可用。如果程序在较旧的 CPU 上运行,它可以使用以下软件模拟相反,这些说明。)

在编译项目中继续前进的快速而肮脏的方法是将cpuid.h您找到的文件之一复制到编译器可以找到它的位置。 (也许可以尝试cp /usr/lib/gcc/x86_64-redhat-linux/4.3.0/include/cpuid.h /usr/include)这可能不是正确的您的 CPU 的文件,但大多数库例程无论如何都不需要 cpuid 信息,因此它可能会让您取得有用的进展。然而,如果您曾经遇到过尝试查找 CPU 信息的函数,那么您构建的库可能无法 100% 在您期望的地方工作。

相关内容