Linux找出用于编译运行内核的GNU gcc编译器版本

时间:2020-01-09 10:40:18  来源:igfitidea点击:

我在基于Linux的系统上安装了多个版本的gcc。

如何使用与用于编译当前运行的内核相同的GNU编译器版本来构建nvidia设备驱动程序。
如何找到上游Linux发行版用来编译和打包二进制Linux内核的GNU gcc编译器的版本?
您需要处理/proc/version文件。
该文件标识当前正在运行的内核版本以及用于构建内核的gcc版本。

Debian GNU/Linux 6.x的示例输出

打开命令行终端(选择应用程序>附件>终端),然后执行cat命令:

$ cat /proc/version

输出示例:

Linux version 2.6.32-5-amd64 (Debian 2.6.32-41) ([email protected]) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Mon Jan 16 16:22:28 UTC 2012

(此内核是使用gcc版本4.3.5构建的)

CentOS/RHEL 6.x服务器的输出示例

执行以下命令:

$ cat /proc/version

输出示例:

Linux version 2.6.32-220.2.1.el6.x86_64 ([email protected]) (gcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC) ) #1 SMP Tue Dec 13 16:21:34 EST 2011

(此内核是使用gcc版本4.4.6构建的)

来自Ubuntu Linux笔记本电脑的示例输出

$ cat /proc/version

输出示例:

Linux version 4.13.0-17-generic (buildd@lcy01-amd64-011) (gcc version 7.2.0 (Ubuntu 7.2.0-8ubuntu3)) #20-Ubuntu SMP Mon Nov 6 10:04:08 UTC 2016

我如何强制使用特殊编译器?

您需要设置名为CC的shell环境变量以指向您的C编译器。
在此示例中,将CC设置为gcc版本4.3.x:

$ export CC=/usr/bin/gcc-4.3
$ make

或开始使用gcc-4.3构建NVIDIA模块:

$ export CC=/usr/bin/gcc-4.3
$ bash NVIDIA-Linux-x86_64-295.20.run