2011-11-20 91 views
3

我使用gtkmm在C++中編寫Eclipse CDT。我已設法設置Eclipse,以便通過將pkg-config gtkmm-3.0 --cflags --libs添加到編譯器選項來正確編譯代碼。所以它運行,並工作。但在編輯器中,一切與紅色相關的gtk相關,當我將鼠標懸停在這些部分上時,它會顯示如下內容:Type 'Gtk::Main' could not be resolved。所以我可以像這樣編寫代碼,但是在autocompletion不工作並且屏幕上出現紅線的情況下真的很痛苦。我該如何解決這個問題?Eclipse CDT&gtkmm:「... could not be resolved。」,但編譯並運行

我的代碼看起來是這樣的:

#include <gtkmm-3.0/gtkmm.h> 
#include <iostream> 

using namespace std; 

int main(int argc, char *argv[]) 
{ 
    Gtk::Main kit(true); 

    Gtk::Box* box = new Gtk::Box(); 

    ... 

不過,我不認爲這是相關的代碼。因爲它在Code :: Blocks中可以正常工作,代碼完成和所有。但是我比Eclipse更喜歡C :: B。

//丹尼爾

回答

3

選擇項目 - >屬性從菜單中打開屬性窗口。然後在左邊的選擇器中,轉到C/C++通用路徑和符號。您將看到包含目錄的列表。看看pkg-config --cflags gtkmm-3.0的輸出,並確保所有提到的目錄也在這個列表中。

請注意,這些是Eclipse語法檢查程序查找包含文件的路徑。你的代碼編譯得很好,因爲編譯器正在以它應該的方式找到這些文件。

+0

非常感謝!它似乎完美地工作。但是,有沒有簡單快捷的方法來添加它們?我是否必須對所有gtkmm項目重複此操作? –

+0

對不起,我還沒有找到更好的方法自動或輕鬆地完成它。 – ptomato

+0

您可以像回答中建議的那樣展開'pkg-config --cflags gtkmm-3.0',並在eclipse的XML項目文件中手動添加輸出。使用矩形選擇('Shift + Alt + A'啓用),它可以做得非常快。 – BobMorane

2

正如ptomato所說,路徑必須配置。一個非常簡單的方法是使用pkg-conf插件。 安裝完成後,您只需在configuration中選擇gtkmm-3.0即可。 其餘部分將由插件完成。 希望這張照片有所幫助。 請注意:截圖顯示了conf。爲GTK-2.0。你需要GTKMM-3.0。