在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>;
时间: 2024-10-08 20:04:38