VTK生成项目是出现无法解析的外部符号的解决办法

Posted valar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VTK生成项目是出现无法解析的外部符号的解决办法相关的知识,希望对你有一定的参考价值。

当你VTk所有目录和链接库加入到属性页中后,或许还会遇见一个让人头疼的问题:

这是为什么呢?

大部分新手可能都是在配置完毕后亟不可待地在网上找了一段测试代码就进行测试,并没有考虑测试代码之中的陷阱。然后就出现了这个问题。

其实这个问题的原因就在程序开头两句:

#define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeTypeOpenGL,vtkRenderingOpenGL) 
#define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL)

 

这两句时6.0版本之前用的,官方有文档说明:

“If you are using an older version of VTK (6.0 or master from before the date above) than you can try including this snippet in all your code that includes VTK usage, BEFORE including ANY VTK header files:
#define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeTypeOpenGL,vtkRenderingOpenGL) #define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL)”

在6.0之后,要改成下面两句:

#include <vtkAutoInit.h> 
VTK_MODULE_INIT(vtkRenderingOpenGL);

根据需要还有:

VTK_MODULE_INIT(vtkRenderingFreeTypeOpenGL);
VTK_MODULE_INIT(vtkInteractionStyle);

等。

修改后,程序就可以顺利运行了。

以上是关于VTK生成项目是出现无法解析的外部符号的解决办法的主要内容,如果未能解决你的问题,请参考以下文章

无法解析的外部符号 _WinMain@16

PCL测试程序出现LNK2001-无法解析的外部符号

VS编写C++/C时出现错误LNK2001 无法解析的外部符号 main

gflags_static.lib 无法解析的外部符号 __imp__PathMatchSpec

无法解析的外部符号

关于"无法解析的外部符号"问题的解决