每日积累(20161201-day-9)(依赖vtk的工程项目)

本文介绍了解决使用VTK库时遇到的运行时错误“no override found for vtkRenderingOpenGL”的方法。通过在CMakeLists.txt中正确配置并链接所需的VTK组件,以及在源代码中初始化VTK模块来解决此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

依赖vtk的工程项目

问题:编译可以成功,但是运行出现no override found for "vtkRenderingOpenGL"

出现原因:CMakeLists.txt中缺少相应的库模块,可以通过文档查阅确定库名,在CMakeLists.txt中添加:
find_package(VTK_COMPONENTS vtkRenderingOpengle)
在.cpp中vtk相关头文件前加
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL);
如果光在.cpp中添加,不再CmakeLists.txt中添加,则出现问题:
CMakeFiles/MarchingCubes.dir/MarchingCubes.cxx.o: In function `vtkRenderingOpenGL_ModuleInit::vtkRenderingOpenGL_ModuleInit()':
MarchingCubes.cxx:(.text._ZN29vtkRenderingOpenGL_ModuleInitC2Ev[_ZN29vtkRenderingOpenGL_ModuleInitC5Ev]+0xd): undefined reference to `vtkRenderingOpenGL_AutoInit_Construct()'
CMakeFiles/MarchingCubes.dir/MarchingCubes.cxx.o: In function `vtkRenderingOpenGL_ModuleInit::~vtkRenderingOpenGL_ModuleInit()':
MarchingCubes.cxx:(.text._ZN29vtkRenderingOpenGL_ModuleInitD2Ev[_ZN29vtkRenderingOpenGL_ModuleInitD5Ev]+0xd): undefined reference to `vtkRenderingOpenGL_AutoInit_Destruct()'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值