出现的错误:
subprocess.CalledProcessError: Command '['which', 'c++']' returned non-zero exit status 1.
在网上搜了搜没看到有同样错误的解决办法,有的地方提到的什么gcc、g++我也都是安装好了的,最后在这篇(报错subprocess.CalledProcessError: Command ‘[‘which‘, ‘g++‘]‘ returned non-zero exit status 1.)解决类似错误的文章里找到了这一行命令:
sudo apt-get install build-essential
根据这篇博客,Ubuntu提供了一个叫build-essential
软件包,安装了该软件包,编译c/c++
所需要的软件包也都会被安装。
运行结果:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会同时安装下列软件:
g++
建议安装:
g++-multilib
下列【新】软件包将被安装:
build-essential g++
升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 32 个软件包未被升级。
需要下载 6,326 B 的归档。
解压缩后会消耗 36.9 kB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://mirrors.aliyun.com/ubuntu bionic-updates/main amd64 g++ amd64 4:7.4.0-1ubuntu2.3 [1,568 B]
获取:2 http://mirrors.aliyun.com/ubuntu bionic/main amd64 build-essential amd64 12.4ubuntu1 [4,758 B]
已下载 6,326 B,耗时 1秒 (12.4 kB/s)
正在选中未选择的软件包 g++。
(正在读取数据库 ... 系统当前共安装有 197460 个文件和目录。)
正准备解包 .../g++_4%3a7.4.0-1ubuntu2.3_amd64.deb ...
正在解包 g++ (4:7.4.0-1ubuntu2.3) ...
正在选中未选择的软件包 build-essential。
正准备解包 .../build-essential_12.4ubuntu1_amd64.deb ...
正在解包 build-essential (12.4ubuntu1) ...
正在设置 g++ (4:7.4.0-1ubuntu2.3) ...
update-alternatives: 使用 /usr/bin/g++ 来在自动模式中提供 /usr/bin/c++ (c++)
正在设置 build-essential (12.4ubuntu1) ...
正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
看上面的意思好像是装了g++,但是我本来就装了g++啊,在装build-essential之前已经装了g++ 7.5:
g++ --version
g++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
不明白这两个g++是有什么区别。
不过现在程序可以正常运行啦~