2014-04-27 140 views
5

在我的netbeans配置中出現了一些可怕的事情,我無法弄清楚它是什麼或如何解決它。 我在debian 7.4上運行netbeans 8.0 C++。 當我有這樣的代碼:Netbeans代碼完成搞砸了

#include <cstdlib> 
#include <vector> 

using namespace std; 

int main(int argc, char** argv) 
{ 
    vector<int> h; 
    h.push_back(4); //THIS LINE 
    return 0; 
} 

Netbeans的強調我有一個註釋的行以紅色和說,這是無法解決標識的push_back。當我只輸入h.時,這些建議提出了一些向量構造函數,但沒有像push_back或erase這樣的方法。我不明白爲什麼,這是一小時前的工作,而且自那以後我什麼也沒有改變。當我打開我的一個項目時,它破裂了。

我試過打開和關閉項目,關閉和打開netbeans,重新啓動我的電腦,並重新安裝netbeans。沒有工作。

+0

問題也出現在其他'stl'容器中? – mr5

+0

不,看起來不像。套和deques都工作正常。 – drowdemon

回答

2

解決方案:OpenJDK 7的是越野車。

爲了解決這個問題,我在主目錄中安裝了Oracle JDK 1.7,並且刪除了三個目錄~/.cache/netbeans,~/.netbeans~/.nbi。我將文件~/netbeans-dev-201405050001/etc/netbeans.conf中的netbeans_jdkhome變量更新爲Oracle JDK 1.7的路徑。

現在,C++ Netbeans解析器完美工作,無論語句的複雜性如何。


Product Version: NetBeans IDE Dev (Build 201405050001) 
    Java: 1.7.0_55; Java HotSpot(TM) Client VM 24.55-b03 
    Runtime: Java(TM) SE Runtime Environment 1.7.0_55-b13 
    System: Linux version 3.2.0-4-686-pae running on i386; UTF-8; fr_FR (nb) 
    User directory: /home/admin/.netbeans/dev 
    Cache directory: /home/admin/.cache/netbeans/dev 
+0

哇,無法想象它是如何計算出來的......感謝分享!! – drowdemon

+0

也謝謝@drowdemon –

+0

是否有OpenJDK問題的任何bug報告,我們可以遵循?(我主要想知道這是否建議仍然適用一年後。)我也看到人們建議清理緩存就夠了(但這對我來說不適用於今天上午的問題......) –

1

我同樣的問題(Netbeans的8.0 - 7.4 Debian的 - OpenJDK 7的),來解決這個問題,我安裝了NetBeans開發在發現this address

+0

這有幫助。但是,現在netbeans也不認識很多其他的東西。例如,如果我有一個指向矢量的指針,它不會識別它的任何方法。 * vector > * L = new vector >; (* L)[0] .resize(1);'給我一個警告,說它無法解析基於模板的標識符調整大小,如果我輸入的話,它不會出現在代碼完成建議框中。然後按Ctrl空間。 – drowdemon

+0

在這種情況下,您必須投射:'static_cast &>((* v)[0])。resize(0);'或'((vector &)((* v)[0])。resize (0);'(這有助於解析器確定類型),尤其是不要忘記包含引用,否則C++創建臨時對象,這是非常重要的,因爲C++是強類型的,我希望我已經有所幫助 –

0

與NetBeans 8.2 JRE 1.8,我得到了一些成員函數,向量代碼完成的問題。 我修改etc/netbeans.conf(JAVAHOME =) 我安裝JRE 1.7.9問題解決了。 (LINUX) 重新解析項目代碼的幫助,一切正常!

+0

我不確定這個解決方案是否適用於Netbeans 8.0就像問題一樣。 – xpereta