问题描述
在学习NS3时遇到了一点小问题,找到解决办法后发现是自己之前手多把gcc版本更改了产生的,所以大概率只对小部分报错适用,就当作记录一段小小的经历吧。
问题背景
在NS3运行first.cc时,遇到了这样的报错:
...include/ns3/length.h:34:20: fatal error: optional: No such file or directory
点入文件后发现找不到optional这个库了。在网上搜寻了许久解决办法,但与我的问题都不太匹配。仔细考虑后,觉得应该是c++库的问题,而Linux中我的c++是依附于gcc的。后来想起自己之前为了别的,把系统默认的gcc-9改成了gcc-5,于是,解决方法自然就是切换gcc版本。
问题解决
查看gcc版本号:
gcc -v
设置优先级(由于Ubuntu20.4默认装的是gcc-9,所以我的虚拟机里本来就有gcc-9了,此处直接设置gcc-5和gcc-9的优先级,数字可随意取,数字越大优先级越高)
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 30
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50
接下来可以查看一下gcc的情况
sudo update-alternatives --config gcc
一般来说就更改好啦!
不过我的问题好像没有完全解决,我build时还是报错:
execv of /usr/bin/c++ failed: No such file or director
我通过卸载重装g++解决了…但不知道对不对,但是起码是能正常build了。
有问题还希望大佬们多多指正!