Your c++ compiler does not fully support c++ 17等一系列cmake安装问题的解决
关于Your c++ compiler does not fully support c++17
首先第一次尝试:
参考该博主 maoni99999的文章,之前的Ubuntu系统也是出现过这个问题,按照该博主的方法解决了。但这次不太行,于是我就下载了新版的gcc9.2.0,参照该链接。安装完毕之后即可。(make这一步时间巨长,5个小时差不多,做好心理准备)。
第二次尝试:
按照上述链接诶安装好gcc之后,重新进行运行如下命令
cmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=~/ycm_temp/llvm_root_dir . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
不要问为什么,因为我就是运行这个命令时出现的问题。
运行后发现问题还是没有解决,然后gcc -version显示gcc版本已经是9.2.0了。下面解释原因。
原因
安装好新版gcc后,也仅仅是安装好了而已,但是系统调用gcc的时候仍然是以你之前版本的gcc为主。这时候我们就要切换系统默认指定的gcc到你新安装的gcc。首先,update-alternatives是一个好用的命令,巨好用,原谅我摸索了两个小时才找到这个命令。参照该文章进行了解。输入命令后如下图
然后将输入你最新版的gcc编号就好了,这里是3。然后问题解决。
若还有找不到/usr/bin/c++问题的话,创建个软链接指向/usr/local/gcc-9.2/bin/g++就好了。命令如下
ln -s /usr/local/gcc-9.2/bin/g++ /usr/bin/c++
这是因为你下载的新版gcc目录里面,既有gcc也有g++,gcc指定完了,那么g++也要制定以下。若显示/usr/bin/c++已存在,也很简单。mv /usr/bin/c++ /usr/bin/c++backup即可。即给c++换个名字同时备份一下,在创建软链接就不会有问题了。
你要是问我为什么不用update-alternatives,偏偏要用软链接ln,那我只能给你说,我在update-alternatives里面没有找到g++的相关信息。