2016-01-08 63 views
0

我对cpp相对陌生,而且偶然发现链接器失败,我无法追踪。cpp链接器失败,无法追踪错误来源

我试过Google Test,我试着将内联头文件示例(sample-3inl.h)重写为单独的源文件和头文件。

我的文件夹结构如下所示:

Project structure: 
├── src 
│ ├── queue.cpp 
│ ├── queue.h 
│ ├── CMakeLists.txt 
├── test 
│ ├── lib 
│ │ ├── gtest 
│ │ │ ├── googletest 
│ ├── unit_test 
│ │ ├── unit_test.cpp 
│ │ ├── CMakeLists.txt 
│ ├── CMakeLists.txt 
├── main.cpp 
├── CMakeLists.txt 

Google Test工作得很好,我已经与原来的sample-3inl.h试了一下。

接头failiure错误:

Undefined symbols for architecture x86_64: 
    "Queue<int>::Enqueue(int const&)", referenced from: 
     QueueTest::SetUp() in dummy.cpp.o 
    "Queue<int>::Queue()", referenced from: 
     QueueTest::QueueTest() in dummy.cpp.o 
    "Queue<int>::~Queue()", referenced from: 
     QueueTest::QueueTest() in dummy.cpp.o 
     QueueTest::~QueueTest() in dummy.cpp.o 
    "Queue<int>::Size() const", referenced from: 
     QueueTest_IsEmptyInitially_Test::TestBody() in dummy.cpp.o 
ld: symbol(s) not found for architecture x86_64 

源代码(myqueue.cpp,myqueue.h和unit_test.cpp)可以在下列page为简单起见被发现。

试图找到导致错误的原因现在几个小时,但我找不到它,真的想知道我做错了什么。 谢谢您提前预约。

回答