2013-11-14 200 views
2

我有一個奇怪的問題,我剛纔得到了與C++。CPP:vfork的:資源暫時不可用

雖然我編譯我的程序,我得到這個:

CPP:vfork的:資源暫時不可用

這是SCO,但我不知道這是否只是一個SCO的事情,或者它可能與所有的Linux系統有關。

我有幾個網站一看,他們說,這可能是「基本上G ++試圖創建(叉)一個新的進程,而內核是說不」 - Touchtecservers answer

我在U&L chat問這個問題,他們說在這裏問。

編輯

我曾嘗試加入:

#define vfork fork 

到源文件,並沒有奏效。

+0

請發表您的代碼 – Claudio

+5

@Claudio通常很好的建議,但它似乎不是有關的這個問題。據推測任何代碼都有這個問題。 – john

+0

@Claudio它是私人代碼,對不起。 – Kevdog777

回答

4

該錯誤消息是由編譯器本身,而不是直接瓜葛與您正在編譯程序的源代碼。事實上,由於編譯器無法啓動cpp進程,因此您的源代碼(可能)尚未被查看。有點不同尋常的是cpp被報告爲進程名稱;我期望它是cc編譯器驅動程序啓動cpp(所以它通常會報告cc: vfork: Resource temporarily unavailable)。

基本上,機器試圖做太多,沒有遺留到一個新的進程的資源。如果您正在運行make -j8來執行並行編譯,也許您應該將8降低爲4。否則,看看機器上還有哪些可以停下來的東西。

+1

是的,我剛剛看過所有處理器正在運行,並且看不到任何進程我可以殺死(看起來像他們都需要)。 – Kevdog777

+2

在這種情況下,您遇到問題。是否需要升級機器上可用的內存?有時間得到一臺新機器?有時間配置更多的交換空間?現在是在不是重負載的另一臺機器上編譯的時間?目前尚不完全清楚您將耗盡哪些資源。這可能是因爲你有太多的進程在運行。無論如何,診斷「機器太忙」了 - 這只是細節。(順便說一句,我注意到SCO Unix根本不是Linux,它們提供了很多相同的功能,但它們是完全獨立的代碼庫。) –

+0

我將內存從1GB升級到2GB,但仍然存在此問題 - 看起來像我'卡住了:/我會嘗試關閉一個進程(PID),如果它導致問題,我將重新啓動機器 - 這是一個虛擬機 – Kevdog777

相關問題