【发布时间】:2012-04-21 22:48:14
【问题描述】:
我有这个错误:
Undefined symbols for architecture x86_64:
"my::Queue<int>::Queue()", referenced from:
_main in ccdwI88X.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
对于这个代码'main.cpp':
#include "Queue.hpp"
int main()
{
my::Queue<int> myqueue;
return 0;
}
'Queue.hpp':
#ifndef QUEUE_HH__
#define QUEUE_HH__
namespace my
{
template <typename T>
class Queue
{
public:
Queue();
};
}
#endif
和'Queue.cpp':
#include "Queue.hpp"
template <typename T>
my::Queue<T>::Queue()
{
}
【问题讨论】:
-
请至少阅读本页右侧“相关”列表中的第一个问题。
-
我读过,但和我遇到的问题不一样。还是谢谢。
-
他建议把类的定义放到一个头文件中,但是我这样做了(Queue.hpp),反正不管用...
-
您在帖子中的代码在标题中没有您的类模板构造函数的完整定义。它只有一个声明。