命令行gcc -v和g++ -v输出版本不一致
命令行gcc -v和g++ -v输出版本不一致
前言:本文初编辑于2024年1月30日
CSDN主页:https://blog.csdn.net/rvdgdsva
博客园主页:https://www.cnblogs.com/hassle

本人错误描述:conda环境里面有一个默认环境base和一个创建的环境your_env_name,base里面安装的是gcc7.5和g++7.5,创建环境里装的是gcc14和g++14。而虚拟环境里面命令gcc -v和g++ -v输出版本不一致
在虚拟环境里,运行下面的代码,显示gcc版本为14.0
(your_env_name) XiaoMing@LAPTOP:~$ gcc -v
//结果
gcc version 14.1.0 (conda-forge gcc 14.1.0-1)
运行下面的代码,显示g++版本为7.5
(your_env_name) XiaoMing@LAPTOP:~$ g++ -v
//结果
gcc version 7.5.0 (Ubuntu 7.5.0-6ubuntu2)
原因
去找找报错信息看到了这个
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/XiaoMing/miniconda3/envs/your_env_name/bin/
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
系统中同时存在两个不同的GCC编译器安装:一个是由Miniconda3环境your_env_name
提供的GCC 14.1.0版本,另一个是系统自带的GCC 7版本。 gcc -v
命令显示的是Miniconda3环境your_env_name
中配置的GCC编译器信息,而 g++ -v
命令显示的是系统默认的g++编译器信息。
gcc -v
输出中的 Target: x86_64-conda-linux-gnu
指明了Miniconda环境中的编译器目标架构,而 g++ -v
输出中的 Target: x86_64-linux-gnu
指明了系统默认编译器的目标架构。 这说明Miniconda环境中的GCC编译器与系统默认的g++编译器是不同的。
造成这种差异的原因可能是你的系统环境变量PATH
的设置导致shell优先搜索Miniconda环境中的gcc
,而g++
则仍然指向系统默认的编译器。 或者,系统可能同时安装了多个版本的GCC编译器,而gcc
和g++
的符号链接指向了不同的版本。
处理
打开终端,输入以下命令查看当前的PATH
环境变量:
echo $PATH
这将输出一个以冒号 (:
) 分隔的目录列表。 这些目录是shell搜索可执行文件的路径。
在输出的PATH
中,找到Miniconda环境yuan
的bin
目录路径 (例如 /home/XiaoMing/miniconda3/envs/your_env_name/bin
) 和系统默认GCC编译器的路径 (例如 /usr/bin
或 /usr/local/bin
)。
找到你的shell配置文件。 这通常是~/.bashrc
(bash shell), ~/.zshrc
(zsh shell), 或其他类似的文件。 使用文本编辑器打开该文件 (例如 nano ~/.bashrc
或 vim ~/.bashrc
),不过我更推荐使用nano ~/.bashrc
。 在文件中找到PATH
变量的定义行,并修改其顺序,将系统默认GCC路径放在Miniconda路径之前。 例如,如果你的PATH
定义如下:
export PATH="/home/youmu/miniconda3/envs/yuan/bin:$PATH"
修改为:
export PATH="/usr/bin:/home/youmu/miniconda3/envs/yuan/bin:$PATH" # 或其他包含系统GCC路径的路径
此步骤旨在调整PATH
环境变量的顺序,使系统在搜索gcc
命令时,优先查找系统默认路径下的gcc
,而不是Miniconda环境中的gcc
保存并关闭文件。 然后运行以下命令使更改生效:
source ~/.bashrc # 或 source ~/.zshrc 等
重新运行 gcc -v
和 g++ -v
命令,查看输出是否已更改。
不出意外的话,你的虚拟环境中的gcc将从指向了Miniconda环境中(your_env_name)的编译器变成指向了系统默认(base)的编译器
命令行gcc -v和g++ -v输出版本不一致的更多相关文章
- 命令行下查看python和numpy的版本和安装位置
命令行下查看python和numpy的版本和安装位置 1.查看python版本 方法一: python -V 注意:‘-V‘中‘V’为大写字母,只有一个‘-’ 方法二: python --versio ...
- java从命令行接受多个数字求和输出
一·设计思路 1.定义一个整型变量sum,用于接收和 2.利用循环将命令行数字求和 3.输出参数个数以及参数之和 二·流程图 三·程序源代码 public class JavaAppArguments ...
- Mac下通过命令行安装npm install -g 报错,如何解决?
1, 使用 sudo npm install -g n2, 或者 sudo chmod -R 777 /usr/local/lib,然后 npm install -g
- WINDOWS 命令行调用SAS代码 并指定输出路径 示例
ECHO "设置SAS.EXE 路径" SET PATH=D:\Program Files\SASHome\SASFoundation\9.4\SAS.EXE echo " ...
- mac下命令行安装node.js及切换不同版本nodejs
摘自: http://www.cnblogs.com/ikuyka/p/5825762.html 前提是你电脑里已经装了node.js然后才能采用以下命令(以下代码最好不要同时运行) sudo n - ...
- [转] Java 命令行交互-JCommander
[From] https://github.com/Sayi/sayi.github.com/issues/32 我喜欢简单,什么是简单?正如若干字符组成的命令行. 有时候我们用Java开发了一个小工 ...
- windows脚本(VBS)之cmd命令行的妙用
windows脚本(VBS)之cmd命令行的妙用 (2009-08-06 13:40:55) 转载▼ 标签: 脚本 cmd 命令行 vbs js 简单 公式 windows it 分类: 计算机 脚本 ...
- optparse--强大的命令行参数处理包
optparse,它功能强大,而且易于使用,可以方便地生成标准的.符合Unix/Posix 规范的命令行说明. optparse的简单示例: from optparse import OptionPa ...
- Wireshark命令行工具tshark
Wireshark命令行工具tshark 1.目的 写这篇博客的目的主要是为了方便查阅,使用wireshark可以分析数据包,可以通过编辑过滤表达式来达到对数据的分析:但我的需求是,怎么样把Data部 ...
- windos命令行下的程序编写
1.命令行下写程序. 写程序一定要用IDE?不,我还可以用记事本呢.呵呵,写程序一定要用记事本?? ———————————————— 命令行下输入copy con test.txt后回车可在相应目录下 ...
随机推荐
- 对于同一个项目,同时将其git到GitHub和Gitee
对于同一个项目,你可以同时将其git到GitHub和Gitee.这通常通过配置多个远程仓库地址来实现.以下是一步步的操作指南: 一.在GitHub和Gitee上创建仓库 GitHub: 登录GitHu ...
- 开源新纪元:Llama 3.1超大杯405B跑分惊艳,首次超越GPT-4o,下载链接曝光!
开源巨擘Llama 3.1崭露头角,性能卓越引发热议 在科技界的瞩目下,Llama 3.1系列模型以其卓越的性能脱颖而出,尤其是其405B超大杯版本,在微软Azure-ML GitHub平台的多项评测 ...
- 《Programming from the Ground Up》阅读笔记:p88-p94
<Programming from the Ground Up>学习第5天,p88-p94总结,总计7页. 一.技术总结 1.touppercase.s #PURPOSE: This pr ...
- BI 工具助力企业解锁数字化工厂,开启工业智能新视界
背景 在 2022 年公布的<"十四五"数字经济发展规划>中,政府不断增加对制造业数字化转型的政策支持力度,积极倡导制造企业采用最新技术,提升自动化.数字化和智能化水平 ...
- 【RabbitMQ】01 简单模式
参考自腾讯云的实验课堂,减少部署时间的折腾 1.创建Erlang.Repo库 curl -s https://packagecloud.io/install/repositories/rabbitmq ...
- 【Uni-App】底部栏踩坑
一.Page.json一定要注册这个页面 Uni-App通过page.json找到,解析不到这个页面文件是没用的 二.配置tabBar属性 "tabBar":{ "col ...
- 国产的AI基础设施与国外的差距?仅以grpc与prpc做比较
搞AI,基础设施包括软件.硬件以及相关生态,多方面,这里只片面的取一个例子来说明国内外在AI基础设施上的区别,注意,这里只是片面截取. 高性能的rpc框架是搞AI的一个基础依赖软件,当然,国外也有与之 ...
- Git的GPG签名 —— Tag签名 Verified验证,防伪造的gitee/github commit验证
相关资料: 如何使用git通过ssh协议拉取gitee上的项目代码--如何正确的免密使用git 不论是gitee还是GitHub都有两种公钥设置,一种是ssh公钥,另一种则是GPG公钥.ssh公钥是为 ...
- 如何将python的pip源设置为阿里云
为python的pip源设置为阿里云,pip源的设置操作: pip config set global.index-url https://mirrors.cloud.aliyuncs.com/pyp ...
- 如何修复ubuntu的uefi启动——如何将Ubuntu安装入移动硬盘中
交代一下使用场景,个人平时经常使用Ubuntu系统,由于不喜欢总在一个地方呆但是来回搬电脑又不是十分的方便,于是想到了一个好的方案,那就是把Ubuntu系统安装到移动硬盘中,这样不论是在家还是在实验室 ...