C++模板函数报错:undefined reference to ‘xxxxxxxxx‘

错误日志
在写一个BA优化函数时,把模板函数的声明写在了.h中,定义在.cpp中,编译时报错:

undefined reference to 'xxxxxx'

xxxxxx是模板函数的名字。

解决方法
undefined reference这个报错太常见了,意思就是找不到这个函数的定义在哪。一般来说是因为链接库错误的原因。

但是这个模板函数不一样,模板函数的声明和定义要放在一起,如果分开写在.h和.cpp中,.cpp文件中的定义就会被忽略掉,导致编译时,模板函数只有一个声明的壳而没有实体,编译器就会报找不到这个函数了。

第一次碰到这样导致undefined reference的情形,debug了两天,纯纯属于浪费时间了。

你可能感兴趣的:(Debug经验,c++,开发语言)