error LNK1120: 2个无法解析的外部命令:vtkRenderingOpenGL_AutoInit(Construct、Destruct),该函数在......中被引用

进行PCL最小包围盒计算时,使用了https://blog.csdn.net/WillWinston/article/details/80196895 里的程序。

在pcl1.8.0+vs2013+win10环境下,调试报错:

(1)error LNK1120: 2 个无法解析的外部命令;

(2)error LNK2019:无法解析的外部符号"vtkRenderingOpenGL_AutoInit(Construct)"在.....中被引用;

(3)error LNK2019:无法解析的外部符号"vtkRenderingOpenGL_AutoInit(Destruct)"在.....中被引用。

网上搜索这个问题的原因说:是有头文件,但找不到实现(https://blog.csdn.net/ydc_ss/article/details/53227732):

(1)只包含了头文件,只有这个函数的声明,没有包含这个函数的实现(实现一般放在cpp文件中的)。所以只能通过编译,连接不成功。
(2)另一个原因是函数的声明和实现都放在头文件中了,一般要把声明放头文件中,实现放在cpp文件中。这样每个#include该头文件的文件都会有一份该函数的实现,连接的时候,连接器不知道连接哪一个实现,于是报错。

因此针对vtkRenderingOpenGL这个文件在安装的文件中搜索发现自己使用的是vtkRenderingOpenGL2,才会找不着,修改后报错解决。

你可能感兴趣的:(程序问题)