2013-04-10 145 views
0

我正在嘗試創建自定義對象的QList,但無法這樣做。試圖這樣做,當我收到的編譯錯誤是:自定義對象的QList

error: symbol(s) not found for architecture x86_64 (file not found)

我可以創建自定義對象的指針的QList,以及那原始數據類型。我知道QList支持做我正在做的事情,正如它在文檔中所說的那樣。

我使用的是Mac OS X 10.7.5,Qt 5.0.1和Qt Creator 2.6.2。

代碼:

QList<MyClass> my_list; 
+0

您是否包含MyClass.h? – warunanc 2013-04-10 03:42:39

+0

是的,我包括它。 – nairware 2013-04-10 03:43:59

+0

也許你安裝了32位x86庫而不是x86_64?也許你沒有把庫放在LD_LIBRARY_PATH中? – Alex 2013-04-10 03:59:22

回答

5

根據文檔: 的QList的值類型必須是一個可分配的數據類型。

要限定,類型必須提供默認構造函數,複製構造函數和賦值運算符。所以你的自定義類應該像這樣實現。

class MyClass 
{ 
public: 
    MyClass() {} 
    MyClass(const MyClass &other); 

    MyClass &operator=(const MyClass &other); 

private: 
    //private data members 
}; 
+0

-1錯誤來自鏈接器,而不是編譯器。 – cmannett85 2013-04-10 07:09:06

+0

爲此+1了,因爲它解決了我的問題。正如QList文檔中所建議的,我存儲指針以避免麻煩。 – emolaus 2015-12-14 19:18:21