VTK6.0.0编译 vs2010 win7 32位系统

来源:互联网 发布:淘宝图片专业拍摄 编辑:程序博客网 时间:2024/04/30 04:16

最近需要使用PCL来获取处理点云,需要用到VTK,看到网上有人说vtk5.8.0处理过程中有错(未亲自验证),就打算自己编译一个新的版本,网上能查到最新的版本是编译是vtk-5.10.1. 链接是http://blog.csdn.net/cgcoder/article/details/8262232。

网上现在最新的是vtk-6.0.0,按照上面链接和《VTK在WIN7,VS2010环境下安装》这篇文档的方法:

首先下载了:

vtk-6.0.0.zip 源程序
vtkdata-6.0.0.zip 数据

 

勾选的(按个人需要):

vtk_data_root,浏到例子数据所在位
build_examples:勾选上则编译例子,没有勾选
build_testing: 勾选上则编译试代码,也是例子,没有勾选

build_shared_libs: 勾选了

其他操作跟上面一样;生成sln文件,用vs2010打开,对all build选择“重新生成”,全部成功,没有报错

在选择install后点击生成,同样会出现权限错误,把生成路径从C:/Program Files/VTK改成D:/Program Files/VTK.重新生成。

没有错误,全部通过。

尚未测试。

 

测试例子:

#include "stdafx.h"

#include "vtkConeSource.h"
#include "vtkPolyDataMapper.h"
#include "vtkRenderWindow.h"
#include "vtkCamera.h"
#include "vtkActor.h"
#include "vtkRenderer.h"
#include "vtkProperty.h"
#include "windows.h"

int _tmain(int argc, _TCHAR* argv[])
{

 vtkConeSource *cone = vtkConeSource::New();
 cone->SetHeight( 3.0 );
 cone->SetRadius( 1.0 );
 cone->SetResolution( 10 );

 vtkPolyDataMapper *coneMapper = vtkPolyDataMapper::New();
 coneMapper->SetInputConnection( cone->GetOutputPort() );
 vtkActor *coneActor = vtkActor::New();
 coneActor->SetMapper( coneMapper );
 vtkRenderer *ren1= vtkRenderer::New();
 ren1->AddActor( coneActor );
 ren1->SetBackground( 0.1, 0.2, 0.4 );     
 vtkRenderWindow *renWin = vtkRenderWindow::New();
 renWin->AddRenderer( ren1 );
 renWin->SetSize( 300, 300 );
 for (int i = 0; i < 360; ++i)  
 {
  renWin->Render();
  ren1->GetActiveCamera()->Azimuth( i );
  Sleep(200);
 }        
 cone->Delete(); 
 coneMapper->Delete(); 
 coneActor->Delete();
 ren1->Delete();
 renWin->Delete();
 return 0;
}

 

跟网上其他人说的一样

程序编译已经没有问题,运行会弹框报错

Generic Warning: In ... ...\Rendering\Core\vtkPolyDataMapper.cxx, line 27
Error: no override found for 'vtkPolyDataMapper'

 

解决办法是在cpp文件头加上两个宏定义

如下

#include "stdafx.h"

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

#include "vtkConeSource.h"
#include "vtkPolyDataMapper.h"
#include "vtkRenderWindow.h"
#include "vtkCamera.h"
#include "vtkActor.h"
#include "vtkRenderer.h"
#include "vtkProperty.h"
#include "windows.h"

加在其他地方无效的,注意!!!

 

原创粉丝点击