VTK6.3.0 error: no override found for 'vtkPolyDataMapper'
来源:互联网 发布:马库斯斯玛特体测数据 编辑:程序博客网 时间:2024/05/29 04:21
1 开发环境
计算机系统: Win7
Qt版本: 5.4.0
Qt Creator版本: 3.0.1
VTK版本: 6.3.0
编译器: VS2013
2 解决方法1
根据参考资料[1]的说明,在源程序中添加头文件
- #include <vtkAutoInit.h>
- VTK_MODULE_INIT(vtkRenderingOpenGL);
在main函数中继续添加
- VTK_MODULE_INIT(vtkInteractionStyle);
3 解决方法2
在包含VTK的所有头文件前,先定义一下代码段
- #define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeTypeOpenGL,vtkRenderingOpenGL)
- #define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL)
******************************************************************************************************************************************************************
If you build your project with CMake, and you use the standard find_package(VTK) and include(${VTK_USE_FILE}) then this problem should not occur. (Because the defines will be automatically added for you by virtue of the include(${VTK_USE_FILE})...)
The factory methods now require "auto-initialization" depending on what modules are enabled at VTK configure time. If you are enabling all modules, and building your project without using CMake, you will need some defines in your project in order to make the factories work properly.
On September 10, 2013 a new macro was added to make this process a little simpler for projects that just want to initialize modules, where ordering ceases to be important but you must still build a source file into your application that has something along with following (with one entry for each module that should be initialized).
#include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL);
This will initialize the vtkRenderingOpenGL object factories, and should be done for each module. 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)
See these references (and follow the mailing list threads to their conclusions) for more info:
- http://www.vtk.org/pipermail/vtkusers/2013-April/128255.html
- https://github.com/Kitware/VTK/commit/9385718b82e6af83b7e7dcc90a937419edc6892b
- http://www.vtk.org/pipermail/vtkusers/2013-March/127811.html
I have also had the NULL pointer; surely the code should not compile and just dump a NULL pointer as a result of a call to
theMapper = vtkPolyDataMapper::New();
However after setting the above options (in Windows VStudio 2008 v9 "Property Pages->Preprocessor definitions" for the program I am linking) I get a message from my compiler that some (20) functions were not found. The user at ref [1] seems to have hundreds of missing links.
"2>vtkSDIView.obj : error LNK2001: unresolved external symbol "void __cdecl vtkInteractionStyle_AutoInit_Construct(void)" (?vtkInteractionStyle_AutoInit_Construct@@YAXXZ) 2>vtkSDI.cpp.obj : error LNK2001: unresolved external symbol "void __cdecl vtkInteractionStyle_AutoInit_Destruct(void)"(?vtkInteractionStyle_AutoInit_Destruct@@YAXXZ)"
After linking all the libraries found in the example code (eg the Cone example) these link errors go away. This required adding several tens of new libraries that I had not needed to link for version 5.8 which is slightly annoying. The preprocessor definitions I mention above can also be copied from the Cone example.
- VTK6.3.0 error: no override found for 'vtkPolyDataMapper'
- VTK6 error: no override found for
- VTK6 error: no override found for
- VTK6 error:no override found for 'vtkRenderWindow'
- VTK6.3.0:Error: no override found for 'vtkContextDevice2D'
- no override found for vtkpolydatamapper解决方法
- Error: no override found for 'vtkPolyDataMapper'. 和Warning: Link to vtkInteractionStyle for default
- vtk 使用静态版本出现no override found for vtkpolydatamapper
- VTK编译中出现 no override found for vtkpolydatamapper 解决方法
- Error:no override found for "vtkRenderer"/"vtkImageMapper"
- VTK Error: no override found for 'vtkVolumeTextureMapper2D'.
- Error: no override found for 'vtkRayCastImageDisplayHelper'.
- Error: no override found for'vtkRayCastImageDisplayHelper'
- vtk出现Error:no override found for 'vtkRayCastImageDisplayHleper'
- VTK报错Error: no override found for
- no override found for vtkGPUVolumeRaycastMapper
- vtk 出现“no override found for 。。。”
- VTKError:no override found for 'vtkImageMapper' 和Link to vtkInteractionStyle
- iOS 10 新特性以及xcode8
- JVM 内存泄漏分析笔记
- ndnSIM中概率缓存的简单实现
- spring BeanPostProcessor InitializingBean相关
- oracle12c RAC搭建之一DNS服务器搭建图解(1)
- VTK6.3.0 error: no override found for 'vtkPolyDataMapper'
- spring定时器管理
- Win8安装程序出现2502、2503错误解决方法
- Kafka学习(2)——理解Kafka
- nosql注入-mongodb
- jQuery方法区别(二)position()与offset()区别
- Redis简单入门一
- android总结一: 开机自启动APP
- git push -u origin master 出现The authenticity of host 'github.com ' can't be established解决方案