C++ Error: error LNK2019: unresolved external symbol

在某工程中新添加了文件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>;

你可能感兴趣的:(extern)