VS环境下C++模板编译错误“error LNK2019: 无法解析的外部符号”的解决方法

出现这种情况的原因是

模板的声明和定义放在了不同的文件中(比如说声明在.h头文件而定义在.cpp文件中)

编译器在编译过程中只能找到模板的声明,但是如果定义不在同一文件内,则无法找到对应模板的定义,继而报错显示符号无法解析的错误

因此解决方法可选择下面几个方案:


1. 在一个文件中完成模板的声明及实现

2. 在模板头文件末尾添加实现文件的包含 #include "MyTemnplate.cpp"

3. 在调用方(main.cpp中)包含实现文件 #include "MyTemnplate.cpp"

Last modification:September 2nd, 2018 at 04:59 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment