该问题是缺少gcc文件,或者gcc与g++版本不匹配问题
问题来源1:系统文件的缺失或者不匹配
按照如下方法测试
安装主要是利用apt-get安装,如果没有root权限的话,只能下载源码进行编译安装,然后添加路径环境,安装完之后在用户的bin文件夹下建立软连接用来调用。如果需要安装新的版本,只需要将原来的备份,重新将软连接指向新版本的即可
或者使用update-alternatives设置gcc和g++,方便更换系统不同版本以用以不同编译需求
步骤:
1.查看不同gcc版本
ll /usr/bin/gcc*
ll /usr/bin/g++*
2.安装不同版本
sudo apt install gcc-4.8 gcc-4.8-multilib g++-4.8 g++-4.8-multilib
sudo apt install gcc-5 gcc-5--multilib g++-5 g++-5--multilib
3.使用update-alternatives设置gcc和g++:
update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令、哪个软件版本。
其中40 ,50 是优先级数值可以自己设定,–slave能保证gcc和g++保持相同的版本。
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50 --slave /usr/bin/g++ g++ /usr/bin/g++-5
4.切换版本命令
sudo update-alternatives --config gcc
5.删除指定版本
sudo update-alternatives --remove gcc /usr/bin/gcc-4.5
再使用apt-remove删除即可
问题来源2:
conda虚拟环境中gcc与g++不匹配,默认情况下是系统一样,有时编译时需要不同版本,也可能出现版本冲突
下面是安装方法与替换方法,安装之后并不会影响系统本身安装的版本
在这个链接找到对应版本下载文件命令
例如:
在虚拟环境中
conda install -c daleydeng gcc-5
先测试下gcc -v,g++ -v版本是否改变
若没改变的话建立软连接
ln -s conda/envs/gcc_test/bin/gcc-5.0 conda/envs/gcc_test/bin/gcc
ln -s conda/envs/gcc_test/bin/g++-5.0 conda/envs/gcc_test/bin/g++
前面是下载的文件路径,也可能在lib文件中,后面是建立软连接的地方