编译 C++ 代码时出现 gcc: error trying to exec ‘cc1plus’: execvp: no such file or directory 的错误,问题的原因可能是因为没有安装 g++,或是已安装的 gcc 和 g++ 版本号不一致不兼容导致。若不一致,安装同一个版本的 gcc 和 g++。
检查 gcc、g++ 版本:
gcc -v
g++ -v
查看目前存在的 gcc、g++ 版本:
ls /usr/bin/gcc*
ls /usr/bin/g++*
如果需要安装较低版本,由于源可能缺少旧版本的gcc、g++,如gcc6,gcc5,需要首先导入指定版本的清华源,然后在update更新源,这样即可用apt命令安装。
例如gcc 4.8版本:sudo apt-get install gcc-4.8
笔者gcc是12.3版本,g++则是11版本。二者不匹配,故运行:
sudo apt install gcc-12 g++-12
更改gcc、g++优先级,重新进行软链接
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100
验证当前gcc、g++版本是否切换成功
gcc --version
g++ --version