首页 > 其他分享 >编译安装 NV GPU 最新的开源 driver 时遇错 error: unrecognized command-line option ‘-ftrivial-auto-var-init=zero’

编译安装 NV GPU 最新的开源 driver 时遇错 error: unrecognized command-line option ‘-ftrivial-auto-var-init=zero’

时间:2024-11-22 20:13:52浏览次数:3  
标签:bin gcc 12 option -- alternatives zero init usr

 

1,问题的原因是gcc版本低了

 

如果在编译安装 NV GPU 最新的开源 driver 时遇错 error: unrecognized command-line option ‘-ftrivial-auto-var-init=zero’

那么,先执行 gcc --version 看看 gcc 的版本。

应该是<=11

有一说一,编译器选项 -ftrivial-auto-var-init=<value> 是 gcc-12 从clang借鉴过来的。

先看clang中的解释,

在 clang --help 中可以看到:

-ftrivial-auto-var-init=<value>
                          Initialize trivial automatic stack variables: uninitialized (default) | pattern

有图有真相:

在看gcc-12中的解释,

在 gcc-12 -v --help 中可以看到:

  -ftrivial-auto-var-init=[uninitialized|pattern|zero] Add initializations to automatic variables.

有图有真相:

综上,-ftrivial-auto-var-init=zero 这个编译器的一个选项,用于初始化自动变量(即局部非静态变量)为零。这样就可以一定程度上提高代码的安全性,防止未初始化变量的使用可能导致的未定义行为或安全漏洞。

而gcc-11中没有这个选项,故不能识别。

2,解决方法:多版本gcc

安装gcc-12

这面临着安装多个版本的gcc

假如系统中已经安装了 gcc-11

那么先安装gcc-12:

sudo apt-get install gcc-12

然后使用 update-alternatives 命令切换gcc 为gcc-12,其中 update-alternatives 命令用于处理linux 系统中软件版本的切换,是一个 Linux 通用工具,各个linux发行版中基本都有。

安装 gcc-12 接下来需要继续执行如下命令:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11

从上述update-alternatives 截图可以看出,这里 update-alternatives 各个参数的含义如下:
第一个参数: --install 表示要向 update-alternatives 注册服务名;
第二个参数: 注册最终地址,成功后将会把命令在这个固定的目的地址做真实命令的软链,以后管理就是管理这个软链;
第三个参数: 服务名,以后管理时以它为关联依据;
第四个参数: 被管理的命令绝对路径;
第五个参数: 优先级,数字越大优先级越高。

然后执行:

sudo update-alternatives --config gcc

显示如下:

根据意图,可以写0或2,以便通过gcc来启用 gcc-12

此时 直接使用gcc,则是实用 gcc-12:

ls /usr/bin/gcc

可以看出gcc是个软连接,指向 /et/alternatives/gcc;而这里的gcc 又软连接到真正的 /usr/bin/gcc-12,通过 一个适配层启用到了gcc-12,从而实现了

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12

的意图。

3,命令总结

gcc --version
sudo apt-get install gcc-12

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11
sudo update-alternatives --config gcc

标签:bin,gcc,12,option,--,alternatives,zero,init,usr
From: https://blog.csdn.net/eloudy/article/details/143971938

相关文章

  • docker安装zerotier
    docker安装zerotier安装zerotier安装一键命令:dockerrun-d--namezt--restart=always--device=/dev/net/tun--net=host--cap-add=NET_ADMIN--cap-add=SYS_ADMIN-v/volume1/zerotier-one:/var/lib/zerotier-onezero......
  • kubeadm init 或 join 失败 [kubelet-check] Initial timeout of 40s passed.
    前言kubeadm初始化或join时,报错:[etcd]CreatingstaticPodmanifestforlocaletcdin"/etc/kubernetes/manifests"I112210:50:39.22434151720local.go:65][etcd]wroteStaticPodmanifestforalocaletcdmemberto"/etc/kubernetes/manifests/e......
  • 关计算机安装 postgreSQL12.21.1 中 initdb.exe 启动报错 0xc0000022 的查错总结
    问题描述在安装postgreSQL12.21.1时,initdb.exe无法正常启动,报错信息为应用程序无法启动,错误代码0xc0000022。问题排查过程初始排查与尝试由于个人计算机存在早期权限划分遗留问题,此前多个程序(如PS、Balatro、MySQL等)出现类似报错,通常以管理员身份打开可解决,但此次ini......
  • 【搬运】Linux Command Syntax – Arguments & Options Explained
    本文摘自:https://thenerd.academy/linux-command-syntax-arguments-options-explained/ ThislessonisallabouttheLinuxcommandsyntax!We’regoingtoexplorehowtocustomizethebehaviorofourcommandsbyusingargumentsandoptions.So,fastenyour......
  • KingbaseES V8R6备份恢复案例之---sys_backup.sh init错误
    案例说明:KingbaseESV8R6数据库单实例环境,执行sys_backup.shinit时,出现“repo_ip[127.0.0.1]mustbelocatedinlocal”错误,初始化失败。适用版本:KingbaseESV8R6一、问题现象如下所示,执行sys_backup.shinit时出现以下故障:二、问题分析1、查看sys_backup.conf配置......
  • [20241118]invalid date 0000-00-00(zero year)的输入.txt
    [20241118]invaliddate0000-00-00(zeroyear)的输入.txt--//昨天看了链接:https://www.anbob.com/archives/8511.html,类似的问题以前我也遇到过,我记忆里第一次在toad下,如果在浏--//览数据模式,点击显示0000-00-00的grid会报错,提示invaliddate。--//我一直不明白这些日期输入如何......
  • LaTeX教材排版-03:OptionsAndPackages.tex文件说明
    LaTeX教材排版-03:OptionsAndPackages.tex文件说明Latex教材OptionsAndPackages.tex这个文件的作用有两个,一个是自定义了一些文类的选项,根据这些选项做对应的设置,包括调用Book文类等;一个是导入需要用到的宏包。文件内容如下:\newif\ifistwoside\istwosidefalse\DeclareOption{t......
  • docker busybox作为initContainers
    一、上传到私有仓储dockerpullbusybox:1.33.1dockertagbusybox:1.33.1192.168.31.185/public/busybox:1.33.1dockerpush192.168.31.185/public/busybox:1.33.1---apiVersion:apps/v1kind:Deploymentspec:containers:-env:......
  • 在 tsconfig.json 文件中,compilerOptions.types 字段用于指定 TypeScript 编译器应该
    在tsconfig.json文件中,compilerOptions.types字段用于指定TypeScript编译器应该包含的类型声明文件。这些类型声明文件提供了类型信息,使得TypeScript能够在编译时进行类型检查和提供智能提示。你提到的配置项指定了几个常用的类型声明文件,下面是对这些配置项的详细解释:配......
  • GoldenGate抽取进程延迟严重,论FETCHOPTIONS NOUSESNAPSHOT的重要性
    1、案例概述同事新搭建的一套GoldenGate环境,刚刚搭建时,Extract抽取进程就已经出现延迟现象,当时想着可能很快就能追平,所以最开始也没当回事。结果两天时间,延迟现象没有缓解,已经累积延迟30多个小时。通过info或者stats等命令查看进程状态信息,发现该Extract抽取进程仍然在工作,只......