VTK的安装应该算的上是我最郁闷最纠结的一次安装了。期间发生了各种错误,记录如下,以防以后重装系统还得再装……
系统环境:64位机+VS2010
将VTK压缩包解压,安装完cmake并运行。
之后用vs打开bin目录下的.sln工程文件,直接编译。我编译了1个小时多一点。65个生成成功,1个生成失败。
具体错误信息是:atal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403,具体解决办法参考了http://blog.sciencenet.cn/blog-347289-573096.html文章,不过不全的是,还有一个vtkmfc里的cpp文件也需要修改一处地方。
修改完成后,编译全部通过。
找到工程文件里的install项目,右击,调试,启动新实例进行安装。顺利通过。
最后配置。
由于是64位机,记得要把所有的dll文件拷贝到System32中,可是我发现依旧报错:缺少***.dll,遂复制到SysWOW64文件夹下才可。
关于vs配置,留个记录吧,
C++->常规->附加包含目录:
D:\Program Files (x86)\vtk\VTK5.10.1\GenericFiltering
D:\Program Files (x86)\vtk\VTK5.10.1\Common
D:\Program Files (x86)\vtk\VTK5.10.1\IO
D:\Program Files %28x86%29\vtk\VTK5.10.1\Filtering
D:\Program Files %28x86%29\vtk\VTK5.10.1\Graphics
D:\Program Files %28x86%29\vtk\VTK5.10.1\Rendering
D:\Program Files %28x86%29\vtk\VTK5.10.1\VolumeRendering
D:\Program Files %28x86%29\vtk\VTK5.10.1\Hybrid
D:\Program Files %28x86%29\vtk\VTK5.10.1\Imaging
D:\Program Files %28x86%29\vtk\bin
(自己输入记得一行一行的写!)
链接器->常规->附加库目录:
D:\Program Files %28x86%29\vtk\lib\vtk-5.10
链接器->输入->附加依赖库:
opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;uuid.lib;odbc32.lib;odbccp32.lib;vtkCommon.lib;
vtkDICOMParser.lib;vtkexoIIc.lib;vtkexpat.lib;vtkFiltering.lib;vtkfreetype.lib;vtkftgl.lib;oleaut32.lib;vtkGenericFiltering.lib;vtkGraphics.lib;vtkHybrid.lib;
vtkImaging.lib;vtkIO.lib;vtkjpeg.lib;vtkMPEG2Encode.lib;vtkNetCDF.lib;vtkpng.lib;vtkRendering.lib;vtksys.lib;vtktiff.lib;vtkVolumeRendering.lib;
vtkWidgets.lib;vtkzlib.lib;ws2_32.lib(分号隔开!漏了会悲剧!)
啊,这里是测试代码:
#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 main()
{
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 );
int i;
for (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;
}
运行成功
基本END了吧……我是菜鸟……我光安装就装了好久……犯了一堆错误……泪流满面地记录