1、vtk无法解析的外部符号
之前由于工作原因,所以在vs2015下重新配置了PCL点云库,今天在使用库中vtk函数的时候出现了如下错误:
无法解析的外部符号 "public: __cdecl vtkDebugLeaksManager::vtkDebugLeaksManag~~~~~~~~~~~~~~~~~~~~~
根据错误也在网上找了一些解决办法,比如在程序开头加上vtk的一些头文件,但这样使相同错误越来越多。
从报错原因看出,错误根源应该是vtk第三方库出现了配置错误。
解决办法:
像刚开始配置文件一样,找到项目属性的附加依赖库(是vtk中的lib文件添加错误),将自己版本pcl中的vtk库中的以lib为结尾的文件添加到附加依赖库中,由于文件较多,所以逐个粘贴复制是不太可能的,网上也搜到了快速找到lib文件名的方法,很实用。
在D:\PCL\PCL 1.8.1\3rdParty\VTK\lib文件下新建文本文档,文档中添加以下内容:
@echo off
for %%I in (*.lib) do echo %%I>>all.txt
for %%I in (*debug.lib) do echo %%I>>adebug.txt
for %%I in (*release.lib) do echo %%I>>arelease.txt
pause
添加结束后,将后缀名.txt改为.bat ,然后双击该文件,执行结束后,文件夹中便出现新的 all.txt文件,里面便是我们寻找的.lib文件名了,将找到的文件名添加到附加依赖项之中,重新运行程序,顺利编译。