VTK在VS下的安装方法.docx

上传人:b****5 文档编号:5608920 上传时间:2022-12-29 格式:DOCX 页数:9 大小:19.94KB
下载 相关 举报
VTK在VS下的安装方法.docx_第1页
第1页 / 共9页
VTK在VS下的安装方法.docx_第2页
第2页 / 共9页
VTK在VS下的安装方法.docx_第3页
第3页 / 共9页
VTK在VS下的安装方法.docx_第4页
第4页 / 共9页
VTK在VS下的安装方法.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

VTK在VS下的安装方法.docx

《VTK在VS下的安装方法.docx》由会员分享,可在线阅读,更多相关《VTK在VS下的安装方法.docx(9页珍藏版)》请在冰豆网上搜索。

VTK在VS下的安装方法.docx

VTK在VS下的安装方法

 

VS2010安装配置VTK

VTK5.10.1安装配置教程

•必须下载:

vtk-5.10.1.zip源程序

vtkdata-5.10.1.zip数据

(vtk相关安装程序下载:

http:

//vtk.org)

cmake-2.8.2-win32-x86.zip

(cmake程序下载:

http:

//www.cmake.org/HTML/Index.html)

 

2.将vtk-5.10.1.zip解压到D:

\ProgramFiles\VTK\VTKsourcecode,将vtkdata-5.10.1.zip解压到D:

\ProgramFiles\VTK\VTKdata

  

3.解压cmake-2.8.2-win32-x86.zip,运行{解压目录}\bin\cmake-gui.exe,设置soursecode目录为D:

\ProgramFiles\VTK\VTKsourcecode\,build目录为D:

\ProgramFiles\VTK\VTKbin\

按configure按钮,选VisualStudio10编译器(这里即使是win764位的也建议不要选VS2010W64,不然你就等着悲剧吧!

0XC000007B这个牛逼的错误等着你!

劳资装了4天都这样选的,MLGBD),然后cmake会描所需要的文件。

选中Advanced再按configure,可以看到一个vtk_use_guisupport,选择它,再按configure,选vtk_use_mfc,再configure,configure的次数是无所谓的。

•vtk_data_root:

目的是告诉cmake,vtk需要的数据都在哪里,我们的数据在

c:

/vtk/vtkdata/

(2)cmake_install_prefix:

虽然网上说默认就好。

但是我安装时出了问题。

强烈建议该项的位置填VTK源程序和数据等文件的上一级文件的位置,即若vtk-5.10.1.zip解压到D:

\ProgramFiles\VTK\VTKsourcecode,则此处填D:

\ProgramFiles\VTK。

build_examples:

就是询问是否编译vtk中的例子,你在看这个教程,说明肯定是初次用VTK,建议选上。

build_shared_libs:

如果设置为off,就只会生成lib文件,用于开发肯定是够了。

如果设置为on,将会多生成dll文件,这些dll需要拷到windows/system目录下。

如果用静态库编程,即off时,应用程序可以独立运行,尺寸也比较大,如果用动态库编程,即on时,应用程序必须找到动态库才能运行,但尺寸可以做得比较小。

建议选On,我试过选OFF,所谓的静态编译,但之后新建一个项目时,还是会出现找不到文件的问题。

vtk_use_parallel:

对于想用vtk做并行计算的朋友,要把这个选上,对于只想学学vtk的,保持默认off

   所有项目会变成灰色后后可以点击Generate,完成时会提示Generatingdone,此时关闭cmake。

 

4.用vc++2010打开D:

\ProgramFiles\VTK\VTKbin\Utilities\MaterialLibrary目录下的MaterialLibrary.sln文件,右键点击All_Build选择重新生成。

  

5.若build_shared_libs选择On,把D:

\ProgramFiles\VTK\VTKbin\bin\Debug里生成的vtksys.dll文件拷到windows/system目录下。

或者打开VS2010的属性管理器(视图->其他窗口->属性管理器),双击任意“Microsoft.Cpp.Win32.user”,弹出属性页,在里面VC++目录的LibraryDirectories中将bin文件夹中的Debug包括进去(建议两种方法都用)。

 

6.打开D:

\ProgramFiles\VTK\VTKbin目录下的VTK.sln,右键点击All_Build选择重新生成。

  若build_shared_libs选择On,中途涉及MFC的示例会出错,

对应的解决办法为:

错误①

Link错误:

a.在SolutionExplorer中分别找到vtkDLG、vtkMDI、vtkSDI、vtkMFC这四个项目,右键—>Properties—>ConfigurationProperties—>Linker—>Input—>在AdditionalDependencies中添加..\..\..\..\..\bin\Debug\vtkIO.lib

b.再找到Win32SampleMFC这个项目,与以上类似地在AdditionalDependencies中添加..\..\..\..\bin\Debug\vtkIO.lib

这样,就为这些项目加入了vtkIO.lib库。

上述方法可能失效,可采用下面的方法在vtkDLG、vtkMDI、vtkSDI、vtkMFC、Win32SampleMF项目的CMaklist.txt中修改。

打开CMakelist.txt,在TARGET_LINK_LIBRARIES中添入vtkIO。

例如vtkSDI的CMakelist.txt中,TARGET_LINK_LIBRARIES(vtkSDIvtkMFC)应改为TARGET_LINK_LIBRARIES(vtkSDIvtkMFCvtkIO)。

其他的项目修改类似。

错误②

Thisfilerequires_WIN32_WINNTtobe#definedatleastto0x0403.Value0x0501orhigherisrecommended.

解决办法为:

找到五个工程:

vtkDLG、vtkMDI、vtkSDI、Win32SampleMFC、vtkMFC

a.打开前四个工程源文件中的stdAfx.h,

在四个工程下的项中的.h文件中可以找到。

另外可以打开D:

\ProgramFiles\VTK\,利用文件搜索功能搜寻,找到后用VS2010打开修改(本人用后者,感觉较快)。

b.在vtkMFC工程下的中,找到vtkMFCWindow.cpp打开修改

4个stdafx.h如下修改

//Modifythefollowingdefinesifyouhavetotargetaplatformpriortotheonesspecifiedbelow.

//RefertoMSDNforthelatestinfooncorrespondingvaluesfordifferentplatforms.

 #ifndefWINVER       //AllowuseoffeaturesspecifictoWindows95andWindowsNT4orlater.

 #defineWINVER 0x0601    //ChangethistotheappropriatevaluetotargetWindows98andWindows2000orlater.

 #endif

 

 #ifndef_WIN32_WINNT   //AllowuseoffeaturesspecifictoWindowsNT4orlater.

 #define_WIN32_WINNT 0x0601    //ChangethistotheappropriatevaluetotargetWindows98andWindows2000orlater.

 #endif           

 

 #if_MSC_VER>=1300

 #ifndef_WIN32_WINDOWS   //AllowuseoffeaturesspecifictoWindows98orlater.

 #define_WIN32_WINDOWS 0x0601 //ChangethistotheappropriatevaluetotargetWindowsMeorlater.

 #endif

 #endif

 

 #ifndef_WIN32_IE     //AllowuseoffeaturesspecifictoIE4.0orlater.

 #define_WIN32_IE 0x0800  //ChangethistotheappropriatevaluetotargetIE5.0orlater.

 #endif

红字对应的是win7版本。

vtkMFCWindow.cpp中的部分代码:

//AllowuseoffeaturesspecifictoWindows95andWindowsNT4orlater.

#ifndefWINVER

#defineWINVER 0x0601

#endif

//Define_WIN32_WINNTand_WIN32_IEtoavoidthefollowingerrorwithVisual

//Studio2008SP1:

//"C:

\ProgramFiles\MicrosoftSDKs\Windows\v6.0A\include\sdkddkver.h(217):

//fatalerrorC1189:

#error:

 _WIN32_WINNTsettingsconflictswith_WIN32_IE

//setting"

#ifndef_WIN32_WINNT

#define_WIN32_WINNT 0x0601 //=_WIN32_WINNT_NT4

#endif

#ifndef_WIN32_IE

#define_WIN32_IE 0x0800 //=_WIN32_IE_IE60SP1

#endif

此时,应该没有问题了。

若出现cannotfindvtkMFC.lib则是由于cmake阶段未勾选vtk_use_mfc

7.将D:

\ProgramFiles\VTK\VTKbin\bin\debug这个文件夹选择此中所有的DLL 后缀的文件全部复制到c:

\windows\system32 (调试时推荐),或者拷贝到VC项目可执行文件所在位置(安装到其他机器时拷贝)。

8. 用VS2010打开D:

\ProgramFiles\VTK\VTKbin\Examples\All\VTKExamples.sln,选择Cone项目,右键setasactiveproject(VC不熟的人一定要记得这个!

),然后

选择调试->启动新实例,这时可以看到正确运行的程序了。

 

9.新建项目Test(控制台应用程序空项目),增加Test.cpp文件,用Cone6.cxx的文件内容覆盖Test.cpp的内容。

#include "vtkConeSource.h"

#include "vtkPolyDataMapper.h"

#include "vtkRenderWindow.h" 

#include "vtkCamera.h"

#include "vtkActor.h"

#include "vtkRenderer.h"

#include "vtkProperty.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 );

    }

  cone->Delete();

  coneMapper->Delete();

  coneActor->Delete();

  ren1->Delete();

  renWin->Delete();

  return 0;

}

 

.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\include\vtk-5.10;%(AdditionalIncludeDirectories)

 

$(QTDIR)\lib;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\lib\vtk-5.10;%(AdditionalLibraryDirectories)

 

qtmaind.lib;QtCored4.lib;QtGuid4.lib;opengl32.lib;pcl_kdtree_debug.lib;pcl_io_debug.lib;pcl_search_debug.lib;pcl_segmentation_debug.lib;pcl_apps_debug.lib;pcl_features_debug.lib;pcl_filters_debug.lib;pcl_visualization_debug.lib;pcl_common_debug.lib;flann_cpp_s-gd.lib;libboost_system-vc100-mt-gd-1_47.lib;libboost_filesystem-vc100-mt-gd-1_47.lib;libboost_thread-vc100-mt-gd-1_47.lib;libboost_date_time-vc100-mt-gd-1_47.lib;libboost_iostreams-vc100-mt-gd-1_47.lib;Cosmo.lib;LSDyna.lib;MapReduceMPI.lib;mpistubs.lib;QVTK.lib;VPIC.lib;vtkalglib.lib;vtkcharts.lib;vtkCommon.lib;vtkDICOMParser.lib;vtkexoIIc.lib;vtkexpat.lib;vtkFiltering.lib;vtkfreetype.lib;vtkftgl.lib;vtkGenericFiltering.lib;vtkGeovis.lib;vtkGraphics.lib;vtkhdf5.lib;vtkhdf5_hl.lib;vtkHybrid.lib;vtkImaging.lib;vtkInfovis.lib;vtkIO.lib;vtkjpeg.lib;vtklibxml2.lib;vtkmetaio.lib;vtkMFC.lib;vtkNetCDF.lib;vtkNetCDF_cxx.lib;vtkParallel.lib;vtkpng.lib;vtkproj4.lib;vtkQtChart.lib;vtkRendering.lib;vtksqlite.lib;vtksys.lib;vtktiff.lib;vtkverdict.lib;vtkViews.lib;vtkVolumeRendering.lib;vtkWidgets.lib;vtkzlib.lib;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\VTKBIN\bin\Debug\QVTKWidgetPlugin.lib;%(AdditionalDependencies)

9.2项目属性->配置属性->VC++目录->包含目录 ,拷入入下述内容:

D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\VTKBIN;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\VTKBIN\bin;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\VTK\GenericFiltering;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\VTK\Common;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\VTK\IO;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\VTK\Filtering;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\VTK\Rendering;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\VTK\Graphics;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\VTK\VolumeRendering;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\VTK\Imaging;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\VTK\Hybrid;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\VTK\GUISupport;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\VTK\Utilities;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\VTKBIN\Utilities;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\VTK\Parallel;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\VTK\Widgets;D:

\ProgramFiles\PCL1.6.0\3rdParty\Boost\include;D:

\ProgramFiles\PCL1.6.0\3rdParty\Eigen\include;D:

\ProgramFiles\PCL1.6.0\3rdParty\FLANN\include;D:

\ProgramFiles\PCL1.6.0\3rdParty\Qhull\include;D:

\ProgramFiles\OpenNI\Include;D:

\ProgramFiles\PCL1.6.0\include\pcl-1.6;D:

\Qt\4.8.0\include;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\include\vtk-5.10;$(IncludePath)

9.1项目属性->配置属性->VC++目录->库目录:

D:

\ProgramFiles\VTK\VTKbin\bin\debug

若出现无法找到vtkRendering.dll等错误,则是由于该环境变量未配置正确

D:

\ProgramFiles\PCL1.6.0\3rdParty\Boost\lib;D:

\ProgramFiles\PCL1.6.0\3rdParty\Eigen\bin;D:

\ProgramFiles\PCL1.6.0\3rdParty\FLANN\lib;D:

\ProgramFiles\PCL1.6.0\3rdParty\Qhull\lib;D:

\ProgramFiles\PCL1.6.0\lib;D:

\ProgramFiles\OpenNI\Lib;D:

\Qt\4.8.0\lib;D:

\ProgramFiles\PCL1.6.0\3rdParty\VTK\VTKBIN\bin\Release;$(LibraryPath)

( 注意:

网上很多配置方法在Additional include directories(附加包含路径)没有添加D:

\ProgramFiles\VTK\VTKbin;D:

\ProgramFiles\VTK\VTKbin\bin; 结果出现错误提示:

无法打开包括文件:

“vtkConfigure.h”:

 No such file or directory)

9.3位于项目属性->链接器->输入->附加依赖项 ,拷入下述内容(下面有些lib文件已经被附加进去了,就不需要再添加进去):

opengl32.libkernel32.libuser32.libgdi32.libwinspool.libcomdlg32.libadvapi32.libshell32.libole32.liboleaut32.libuuid.libodbc32.libvtkCommon.libvtkDICOMParser.libvtkexoIIc.libvtkexpat.libvtkFiltering.libvtkfreetype.libvtkftgl.libvtkGenericFiltering.libvtkGraphics.libvtkHybrid.libvtkImaging.libvtkIO.libvtkjpeg.lib vtkNetCDF.libvtkpng.libvtkRendering.libvtksys.libvtktiff.libvtkVolumeRendering.libvtkWidgets.libvtkzlib.lib

qtmaind.lib

QtCored4.lib

QtGuid4.lib

opengl32.lib

pcl_kdtree_debug.lib

pcl_io_debug.lib

pcl_search_debug.lib

pcl_segmentation_debug.lib

pcl_apps_debug.lib

pcl_features_debug.lib

pcl_filters_debug.lib

pcl

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1