我是个新手,但喜欢冒险。我正在三重启动 Windows、Fedora 和 Ubuntu 14.04 LTS(均为 64)。正在学习但不使用 dpkg、apt 和 apt-get。开始使用 Ubuntu(唯一安装了 gcc 的版本)学习 C++。因此,在第一次尝试编译时,我运行了命令gcc xy.cc
并得到了以下内容:
gcc: error trying to exec 'cc1plus' : execvp: No such file or directory
于是我在电脑里搜索 cc1plus 和 execvp。但都没找到。只有目录中的 execvp.3.gz/user/share/man/man3
和 中的 cc1 /user/lib/gcc/x86_64-linux-gnu/4.8
。
因此,需要做大量的工作并学习有关包获取器和检查器的知识,但没有勇气删除并重新安装等。
你有什么建议吗?
答案1
您的机器上可能缺少 g++ 包。打开终端并使用以下命令安装它:
sudo apt-get install g++
要使用 g++ 进行编译,请使用以下命令
g++ -o test.o test.cpp
g++可以用来编译C++源码,ubuntu默认安装自带gcc,但是没有自带g++。
您正在尝试使用 C 编译器编译 C++ 源代码。gcc 通常可以成功编译 C++ 代码,但默认情况下它不会链接任何 c++ 特定库(请参阅Stack Overflow 上的这个答案)。
如果显示类似以下消息:Couldn't find package ...
,请尝试以下命令
sudo apt-get update && sudo apt-get upgrade
然后
sudo apt-get install g++
答案2
cc1plus 是 gcc 的 c++ 后端(真正的编译器),如果您主要使用 c++ 编程,那么您确实需要安装 g++(cc1plus 会随附于此)。使用软件包系统前端 apt-get、synaptic、软件管理器或其他一些软件,它将安装依赖项。
execvp 是一个编程函数,您找到的与之匹配的文件是它的 man (手册) 页。要查看它,请打开终端并输入man execvp
。手册页通常在线,其中包含大量有关 cli 和编程的内容。