C++动态库导出模板类的问题

今天准备把常用的一个队列和相关锁变量封装到一个模板类中,模板类定义完成后,类声明上也带有导出定义,但是在使用库的程序中,始终报找不到函数实现的错误。
使用depend工具查看编译生成的dll文件,在函数列表中竟然找不到模板类及其函数!很是费解,开始以为是QT开发工具的问题,不管是重新qmake,重新编译,还是关掉QtCreator后删除构建目录后重新编译,都是如此,百度了半天也百思不得其解。最终在一篇帖子中看到曙光!

感谢链接:
https://blog.csdn.net/zhengudaoer/article/details/73796261

在这篇文章中得到,模板类在未实例化(使用)的时候是不生成代码的,所以库中一直找不到类的定义。

所以根据文中提示,加了一个模板类实例化(只是测试用,所以用了int的参数),但是在使用程序编译时还是报错,最后想了想,应该是模板类对应的参数类型没有生成代码,为了验证,在使用程序中使用模板时也使用了int参数,然后重新编译,程序编译成功!
所以后续模板类的使用,还是尽量放在同一个库中吧。
posted @ 2019-05-17 16:50  strongbug1  阅读(402)  评论(0编辑  收藏  举报