前言
error LNK 2019:无法解释的外部符号解决方案
目前为止,少有的编程经验里遇到的error LNK 2019的情况及其解决方案大致有:
1、类模板的声明和实现分别在.h和.cpp中,不在一个文件中,然后在main函数中使用这个类就会报2019的错
这使用这个类的文件中添加#include "xxx.cpp"
或 在类的头文件末尾包含模板实现函数 #include "xxx.cpp"
还有一种更直接的方式是:在.cpp实现文件末尾添加类模板声明,e.g. template class BTree<int>; (其中,BTree类是个类模板:template <typename T> class BTree {})
2、当然出现此种错误还有一不小心犯得情况就是函数声明了却没有实现
3、遇到的一个案例:在新建一个空的工程时,添加进其他路径下的头文件和源文件,其中含有ipp的库(类似于opencv),此时重新编译就会报此错
解决方法:右击项目工程名,进入properties-->linker-->input-->添加项目依赖(一堆的lib文件)
properties-->C/C++-->additional include directories(库文件.h的路径)
properties-->linker--> general-->additional library directories(所有lib文件所在的目录)