首页 > 代码库 > C++ Error: error LNK2019: unresolved external symbol

C++ Error: error LNK2019: unresolved external symbol

在currennt工程中新添加了一个文件x.cu与x.hpp,最后编译整个工程的时候就出现了这个问题:

error LNK2019: unresolved external symbol

这是链接错误,表示没有找到编译好的二进制库文件~

这很诡异,因为我并没有引用什么第三方的lib(这很容易出现上述问题),编译器提示出现问题的代码是我自己写的啊!

又感觉脊背发凉………

最后不断排查,几乎把所有可能出错的代码都注释了,最后查到问题了,原来是template没有实例化= =

并非没有找到编译好的二进制文件,而是二进制文件根本就没有实例化生成……

 

如果在代码中使用了模板template,那么在类定义的最后一定要显示实例化模板,例:

template class WeeLayer<Cpu, activation_functions::Tanh>;

template class WeeLayer<Gpu, activation_functions::Logistic>;

C++ Error: error LNK2019: unresolved external symbol