错误日志
在写一个BA优化函数时,把模板函数的声明写在了.h中,定义在.cpp中,编译时报错:
undefined reference to 'xxxxxx'
xxxxxx是模板函数的名字。
解决方法
undefined reference这个报错太常见了,意思就是找不到这个函数的定义在哪。一般来说是因为链接库错误的原因。
但是这个模板函数不一样,模板函数的声明和定义要放在一起,如果分开写在.h和.cpp中,.cpp文件中的定义就会被忽略掉,导致编译时,模板函数只有一个声明的壳而没有实体,编译器就会报找不到这个函数了。
第一次碰到这样导致undefined reference的情形,debug了两天,纯纯属于浪费时间了。