2016-01-08 85 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爲簡單起見被發現。

試圖找到導致錯誤的原因現在幾個小時,但我找不到它,真的想知道我做錯了什麼。 謝謝您提前預約。

回答