编写template时遇到undefined reference to
2014-12-10 21:41
162 查看
具体情况是,没有把 模板类中函数的定义写在相应的.h文件中
参考:http://stackoverflow.com/questions/8752837/undefined-reference-to-template-class-constructor
我的理解:
像之前一样把函数声明和定义分离,却遇到了很奇怪的错误。Google之后才知道:模板类只是告诉了编译器如何去生成类,并没有生成类,在编译main.cpp的时候,生 成List<QUADPTR>类时,其中的函数因为在list.h中没有具体的定义,都没有生成,而在编译list.cpp时,编译器并不知道要生成哪个类,并没有生成例如push_back等函数,这导致在连接的时候,List<QUADPTR>::push_back并没有相应的实现。解决方法有两个,一个是把定义写在.h文件中,这样编译main.cpp时,由于include.h,是会生成具体的函数的,另一个方法是在list.cpp文件中告诉编译器要生成的类,template class List<QUADPTR>。
参考:http://stackoverflow.com/questions/8752837/undefined-reference-to-template-class-constructor
我的理解:
像之前一样把函数声明和定义分离,却遇到了很奇怪的错误。Google之后才知道:模板类只是告诉了编译器如何去生成类,并没有生成类,在编译main.cpp的时候,生 成List<QUADPTR>类时,其中的函数因为在list.h中没有具体的定义,都没有生成,而在编译list.cpp时,编译器并不知道要生成哪个类,并没有生成例如push_back等函数,这导致在连接的时候,List<QUADPTR>::push_back并没有相应的实现。解决方法有两个,一个是把定义写在.h文件中,这样编译main.cpp时,由于include.h,是会生成具体的函数的,另一个方法是在list.cpp文件中告诉编译器要生成的类,template class List<QUADPTR>。
相关文章推荐
- QT2.2.0中多线程中遇到undefined reference to `pthread_create'问题的解决
- 添加自己编写的模块到ns-3中出现undefined reference to问题的解决
- c++ template 多层继承下找不到纯虚拟函数实现 报错:undefined reference to "xxx"
- Linux下编译C++程序遇到错误:undefined reference to `*::*
- 多线程编程中遇到的问题——undefined reference to 'pthread_create'
- 交叉编译tslib,遇到undefined reference to rpl_malloc错误解决办法
- 编译时遇到错误:undefined reference to XXXXXX
- Linux下eclipse编译C/C++程序遇到 undefined reference to `pthread_create'的异常解决办法
- android ndk开发支持64位时遇到undefined reference to `__system_property_get'
- Android NDK r6b使用stl遇到undefined reference to `std::__node_alloc::_M_allocate(unsigned int&)” 的终极解决办法
- 编译时遇到 "Undefined reference to vtable for ***" 错误怎么办?
- 编译:splint 遇到的问题: undefined reference to `yywrap'
- Makefile编写执行问题,报错undefined reference to `main'
- linux编译安装php5.4遇到错误:undefined reference to `libiconv_open'
- 在ubunut中安装了opencv2.1之后,自己编写程序, 出现undefined reference to `cvLoadImage'
- Makefile编写实例——(.text+0x15): undefined reference to `init_queue'
- “undefined reference to”c++ template
- cc编译cpp遇到undefined reference to `__gxx_personality_v0'
- Linux 编写线程,调用pthread_create,pthread_join出现undefined reference to..问题
- Linux下编译程序时,经常会遇到“undefined reference to XXX” 报错,