2013-04-10 157 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