使用C++17需要gcc为7.0以上版本即可,但要使用C++ 17 STL并行算法库,必须是9.1以上版本。
我需要使用并行库,但gcc为7.5版本,故有此文。
先查看下你的gcc版本:
gcc -v
可以看到我这里是gcc7.5
安装GCC9
sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt updatesudo apt install gcc-9 g++-9
如果还想装其他版本可参考链接
为gcc-9和gcc-7(如果你之前的也是gcc-7版本的话)添加软链:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 30 --slave /usr/bin/g++ g++ /usr/bin/g++-9sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-7
现在看一下update-alternatives config:
命令为:
sudo update-alternatives --config gcc
如果输入选项2,则会将系统默认调用的gcc版本定为9。
现在再看一下你的gcc版本:
gcc -v
成功!
另外,删除软链的方法:
sudo update-alternatives --remove gcc /usr/bin/gcc-9
接下来TBB的安装请参考
Ubuntu 16.04系统中使用GCC 9.1及Intel TBB库运行C++17 STL并行算法库
也可以
echo "deb http://cz.archive.ubuntu.com/ubuntu eoan main universe" | sudo tee -a /etc/apt/sources.listsudo apt updatesudo apt install libtbb-dev
这种方式看起来简单一些,不过我没单独试过,不知道是否可行。方法来自链接
参考 Ubuntu 16.04系统中GCC 9.1编译器安装方法及C++17标准测试示例
Ubuntu18.04安装不同版本的GCC,并切换当前的默认GCC版本
ubuntu设置默认gcc版本