问题来源

今天看了orbslam2自带的第三方库DBoW2的TemplatedVocabulary.h文件,发现其中模板类的函数成员的定义与声明放在了同一个文件;同时发现,DBoW2的CMakeLists.txt并没有把TemplatedVocabulary.h的实现放入到libDBoW2.so之中。

所以含TemplatedVocabulary.h的文件需要再手动链接TemplatedVocabulary.h需要的库。

既然如此,我就”自作聪明“,新建了TemplatedVocabulary.cpp文件,把TemplatedVocabulary.h的实现写在了其中,在CMakeLists.txt中把TemplatedVocabulary.cpp加入了库文件libDBoW2.so中,这样就不用再手动链接TemplatedVocabulary.h需要的库了。然而,在链接libDBoW2.so库的时候出现了错误!!

原因

模板类需要指定类型,指定不同的类型,函数成员实现就不一样;所以在编译的时候需要根据指定的类型来加载相应的函数实现,而不是链接没有指定类型的库文件模板函数。

最新文章

  1. HTML 学习笔记 (canvas 基础)
  2. [ASP.NET MVC 大牛之路]03 - C#高级知识点概要(2) - 线程和并发
  3. cp命令
  4. ASP.Net后台 实现先弹出对话框,再跳转到另一个网页的实现方法
  5. A + B Problem
  6. android之初识Intent
  7. C语言实现strcpy
  8. ios -- NSdata 与 NSString,Byte数组,UIImage 的相互转换(转)
  9. cryptopp开源库的使用(一):md5加密
  10. Java---文件的切割与合并,已经实现图形界面(工具)
  11. 在Service中使用广播接受者
  12. 几种流行Webservice控制框架
  13. angularJS ng-change错误的解决方案
  14. C. Vasya and Robot二分
  15. ssh 免密码登录(设置后仍需输密码的原因及解决方法)
  16. JVM 辣鸡回收
  17. shell编程第五天
  18. 2017/05/02 java 基础 随笔
  19. 【Kafka】Kafka-配置参数详解-参数调优
  20. gnuplot生成MySQL QPS图形

热门文章

  1. 前端学习笔记系列一:14 vue3.X中alias的配置
  2. 学习:java原理—反射机制
  3. Redis原理详解
  4. docker学习笔记-04:docker容器数据卷
  5. R语言 几个易错的地方
  6. 解决phpinfo 和php -v版本不一致的问题
  7. Service总结
  8. Netty简单认识
  9. oracle,uuid为主键,插入时直接更新id
  10. chatdet用法