我是一個新手,但喜歡冒險。我正在三次啟動 Windows、Fedora 和 Ubuntu 14.04 LTS(全部 64 位元)。學習但不會使用 dpkg、apt 和 apt-get。開始使用Ubuntu(唯一安裝了gcc的Ubuntu)學習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 execvp
.手冊頁通常是在線的,其中包含大量有關 cli 和程式設計內容的資訊。