Linux 找出用于编译运行内核的 GNU gcc 编译器版本
我的 Linux 系统上安装了多个版本的 gcc,如下所示:
(图01:该内核是使用 gcc 版本 4.3.5 构建的)
(图 02:该内核是使用 gcc 版本 4.4.6 构建的)
ls -l /usr/bin/gcc*
lrwxrwxrwx 1 root root 7 1 月 11 日 05:20 /usr/bin/gcc -> gcc-4.4
-rwxr-xr-x 1 root root 239528 2010 年 9 月 21 日 /usr/bin/gcc-4.3
-rwxr-xr-x 1 root root 255536 2010 年 11 月 15 日 /usr/bin/gcc-4.4
我需要使用与编译当前运行的内核相同的 GNU 编译器版本来构建 nvidia 设备驱动程序。如何找到上游 Linux 发行版用于编译和打包二进制 Linux 内核的 GNU gcc 编译器版本?
您需要cat /proc/version 文件。此文件标识当前正在运行的内核版本和用于构建内核的 gcc 版本。
Debian GNU/Linux 6.x 的示例输出
打开命令行终端(选择应用程序 > 附件 > 终端),然后输入cat 命令:
示例输出:
$ cat /proc/version
Linux version 2.6.32-5-amd64 (Debian 2.6.32-41) (ben@decadent.org.uk) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Mon Jan 16 16:22:28 UTC 2012
CentOS / RHEL 6.x 服务器的示例输出
键入以下命令:
$ cat /proc/version
示例输出:
Linux version 2.6.32-220.2.1.el6.x86_64 (mockbuild@x86-009.build.bos.redhat.com) (gcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC) ) #1 SMP Tue Dec 13 16:21:34 EST 2011
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 2017
如何强制 make 使用特定的编译器?
您需要设置名为 CC 的 shell 环境变量来指向您的 C 编译器。在此示例中,将 CC 设置为 gcc 版本 4.3.x:
或者开始使用 gcc-4.3 构建 NVIDIA 模块:
$ export CC=/usr/bin/gcc-4.3
$ make
$ export CC=/usr/bin/gcc-4.3
$ bash NVIDIA-Linux-x86_64-295.20.run
本篇文章是Linux GNU/GCC 编译器教程系列中的第12 篇(共13 篇)。继续阅读本系列的其余文章:
- Ubuntu Linux 安装 GNU GCC 编译器和开发环境
- Debian Linux 安装 GNU GCC 编译器和开发环境
- CentOS / RHEL 7:安装 GCC(C 和 C++ 编译器)和开发工具
- 在 Red Hat Enterprise Linux 5(RHEL)上下载并安装 C、C++ 编译器
- Mac OS X:使用 Xcode 安装 GCC 编译器
- 我的 Linux GNU C 或 GCC 编译器安装在哪里?
- 操作方法:在 Linux 中编译并运行 C/C++ 代码
- RHEL / CentOS Linux 安装核心开发工具 Automake、Gcc (C/C++)、Perl、Python 和调试器
- 如何在 Linux / UNIX / *BSD 下编译 C 程序并创建可执行文件
- 如何在 Linux 上安装 ncurses 库
- Linux 查找系统上安装或可用的编译器
- Linux 找出用于编译运行内核的 GNU gcc 编译器版本
- 如何在 Linux 或 UNIX 中查看 C 程序的输出