首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cpp链接器失败,无法跟踪错误来源

问cpp链接器失败,无法跟踪错误来源
EN

Stack Overflow用户
提问于 2016-01-08 07:52:01
回答 1查看 104关注 0票数 0

我对cpp比较陌生,我偶然发现了一个链接器故障,我无法追踪。

我正在尝试谷歌测试,并尝试将内联头示例(sample-3inl.h)重写为单独的源文件和头文件。

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

代码语言:javascript
复制
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

谷歌测试工作得很好,我已经用原始的sample-3inl.h试过了。

链接器故障错误:

代码语言:javascript
复制
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上找到源代码(unit_test.cpp、myQuee.h和页面 )。

现在我试着找出导致错误的原因,但是我找不到,真的想知道我做错了什么。谢谢你提前给我时间。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-08 07:54:10

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

你不能用模板来做这个。有关更多信息,请参阅为什么模板只能在头文件中实现?

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34671987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档