为了安装编译VTK,在网上找了一些相关资料作为参考,在源码编译过程中也遇到了一些问题,后解决,现在将
笔记
哲学笔记pdf明清笔记pdf政法笔记下载课堂笔记下载生物化学笔记PDF
整理如下:
Winxp + VS2010 + CMake2.8.6 + VTK5.8
准备:
1)下载安装Vs2010
2)下载安装CMake2.8.6 (www.cmake.com)
3)下载VTK相关包:(www.vtk.org)
1.vtk-5.8.0-win32-x86.exe (win32安装程序)
2.vtk-5.8.0.zip (源码包)
3.vtkdata-5.8.0.zip (数据包)
4.vtkDocHtml-5.8.0.tar.gz (文档包,可下可不下)
2、为vtk的安装新建个根文件夹,命名为"VTK5.8",在这个文件夹下新建四个文件夹,分别命名为 VTKSrc、VTKData、VTKDoc、Bin,将之前下载的源码包数据包文档包分别解压到前三个文件夹中。
3、安装vtk-5.8.0-win32-x86.exe,安装到根文件夹 VTK5.8 下。
4、打开CMake(CMake2.8\bin\cmake-gui.exe),
设置:Source code目录:F:\Dev\SDK\VTK5.8\VTKSrc
Build目录:F:\Dev\SDK\VTK5.8\Bin (目录地址请根据自己电脑目录做更改)
然后configure,在弹出框中选择VS2010作为我们的编译器,然后Cmake自动描述需要的文件。
停下后,显示红色列
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
,接着开始修改cmake选项,手动勾上
build_shared_libs、build_examples,然后勾选cmake界面上方的Advanced,进入下一级,这时到下面重新找到vtk_use_guisupport 这一项勾选,再 configure,之后会出现 vtk_use_mfc,选择它勾选,再一直configure,直到红色消失。
最后Generate,产生相应的KTV.sln 解决
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
。
(
相关说明:
1、为什么要勾选vtk_use_mfc? 很多人把 vtk 安装好了,却无法运行vtk 中与mfc
混合编程的例子,提示错误都是缺少vtkmfc.lib,问题就出在这个选项,我们必须
把它设置为 on。
2、vtk_use_qvtk,这是给QT用的vtk
3、vtk_data_root: 目的是告诉cmake,vtk 需要的数据都在哪里,我们的数据在
F:\Dev\SDK\VTK5.8\VTKData
4、cmake_install_prefix: 这个是指定一个目录把.h .lib .dll等精华放在这里,
"VTK安装三步曲"里说是为将来装vtk做准备。
5、build_examples: 就是询问是否编译 vtk 中的例子,初次用VTK,选上便于
学习。
6、build_shared_libs: 如果设置为off,就只会生成lib文件,用于开发肯定是
够了。如果设置为on,将会多生成 dll 文件,这些dll需要拷到windows/system
目录下。如果用静态库编程,即off时,应用程序可以独立运行,尺寸也比较大,
如果用动态库编程,即on时,应用程序必须找到动态库才能运行,但尺寸可以做
得比较小。
建议
关于小区增设电动车充电建议给教师的建议PDF智慧城市建议书pdf给教师的36条建议下载税则修订调整建议表下载
选On, 我试过选OFF,所谓的静态编译,但之后新建一个项目时,
还是会出现找不到文件的问题。
7.vtk_use_parallel: 对于想用vtk 做并行计算的朋友,要把这个选上,
对于只想学学vtk 的,保持默认 off
)
5、打开 KTV.sln ,如果使用vs2010,在编译整个解决方案之前,需要注意:
1)请先找到VTKSrc\GUISupport\MFC\vtkMFCWindow.cpp ,找到类似以下源码并修改数值如下:
---------------------------------------------------
#ifndef WINVER
#define WINVER 0x0501
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501 // =_WIN32_WINNT_NT4
#endif
#ifndef _WIN32_IE
#define _WIN32_IE 0x0601 //=_WIN32_IE_IE60SP1
#endif
---------------------------------------------------
2)如果之前Cmake勾选了 build_examples,工程中含有VKT的examples,仅改上面代码还不够,还需要找到
VTKSrc\Examples\GUI\Win32\vtkMFC\vtkDLG\stdafx.h
VTKSrc\Examples\GUI\Win32\vtkMFC\vtkMDI\stdafx.h
VTKSrc\Examples\GUI\Win32\vtkMFC\vtkSDI\stdafx.h
VTKSrc\Examples\GUI\Win32\SampleMFC\stdafx.h
四个文件,每个文件下找到类似以下源码并修改数值如下:----------------------------------------------------
#ifndef WINVER
#define WINVER 0x0501
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501
#endif
#if _MSC_VER >= 1300
#ifndef _WIN32_WINDOWS
#define _WIN32_WINDOWS 0x0501
#endif
#endif
#ifndef _WIN32_IE
#define _WIN32_IE 0x0601
#endif
-----------------------------------------------------
3)如果不进行上述两步操作,在编译项目过程中会出现类似下面错误:
fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.
6、编译整个解决方案。
如果之前Cmake勾选了 build_examples,工程中含有VKT的examples,在编译过程中,以下四个项目vtkDLG、vtkMDI、vtkSDI、Win32SampleMFC,可能还会出现类似下面的LINK链接错误:
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class...
称找不到vtkIO.dll
对应解决办法:在每个项目属性的链接器->输入->附加依赖项中添加入vtkIO.lib库,目录为:..\..\..\..\bin\Debug\vtkIO.lib
就此,基本的VKT安装及源码编译结束,编译产生的lib、dll链接库和执行文件都生成在VTK5.8\Bin\bin\Debug文件夹下。
1. 必须下载:
vtk-5.6.0-win32.exe
vtk-5.6.0.zip 源程序
vtkdata-5.6.0.zip 数据
(vtk相关安装程序下载:http://vtk.org)
cmake-2.8.2-win32-x86.zip
(cmake程序下载:http://www.cmake.org/HTML/Index.html)
2. 安装 vtk-5.6.0-win32.exe 到d:\VTK 5.6, 安装完成后 vtk5.6 文件夹同时会生成 bin、include、lib子文件夹。
3. 将 vtk-5.6.0.zip 解压到d:\VTK 5.6\VTK, 将vtkdata-5.6.0.zip解压到d:\VTK 5.6\vtkdata
4. 解压 cmake-2.8.2-win32-x86.zip,运行{解压目录}\bin\cmake-gui.exe,设置sourse code目录为D:\VTK 5.6\VTK\,build目录为D:\Program Files\VTK 5.6\bin\
按 configure 按钮,选Visual Studio 9 2008编译器,然后cmake会描所需要的文件。
选中 Advanced 再按 configure,可以看到一个vtk_use_guisupport,选择它,再按 configure, 选vtk_use_mfc,再configure,configure的次数是无所谓的。
build_shared_libs: 如果设置为off,就只会生成lib 文件。如果设置为on,将会多生成 dll 文件,这些dll需要拷到windows/system目录下。如果用静态库编程,即off时,应用程序可以独立运行,尺寸也比较大,如果用动态库编程,即on时,应用程序必须找到动态库才能运行。
所有项目会变成灰色后后可以点击 Generate,完成时会提示 Generating done,此时关闭cmake。
5. 用 vc++2008打开 D:\VTK 5.6\bin\Utilities\MaterialLibrary目录下的 MaterialLibrary.sln 文件,右键点击All_Build选择重新生成。
6. 若 build_shared_libs 选择On,把D:\VTK 5.6\bin\bin\Debug里生成的vtksys.dll文件拷到windows/system目录下。或者在 Tools->Options -> Projects and Solutions -> VC++ Directories -> Library Files 中将bin文件夹中的Debug包括进去。
7. 打开D:\Program Files\VTK 5.6\bin目录下的VTK.sln,右键点击All_Build选择重新生成。
若build_shared_libs选择On,中途涉及MFC的示例会出错,
对应的解决办法为:
在Solution Explorer中分别找到vtkDLG、vtkMDI、vtkSDI这三个项目,右键—>Properties—>Configuration Properties—>Linker—>Input—>在Additional Dependencies中添加..\..\..\..\..\bin\Debug\vtkIO.lib
另外,再找到Win32SampleMFC这个项目,与以上类似地在Additional Dependencies中添加..\..\..\..\bin\Debug\vtkIO.lib
这样,就为这些项目加入了vtkIO.lib库。
然后右击Cone6,选择调试->启动新实例,这时可以看到正确运行的程序了。
8. 新建项目Test(控制台应用程序空项目),增加Test.cpp文件,用Cone6.cxx的文件内容覆盖Test.cpp的内容。
此时若出现无法找到vtkRendering.dll等错误,则是由于环境变量未配置正确。将bin文件夹下的debug路径加入Path,之后重启VS即可。
8.1 配置附加包含目录,位于项目属性->配置属性->c/c++/常规 的第一项,拷入入下述内容(具体可通过查看实例的附加包含目录):
"E:\PROGRAM FILE\VTK\VTK5.8.0\GenericFiltering";"E:\PROGRAM FILE\VTK\VTK5.8.0\Common";"E:\PROGRAM FILE\VTK\VTK5.8.0\IO";"E:\PROGRAM FILE\VTK\VTK5.8.0\Filtering";"E:\PROGRAM FILE\VTK\bin";"E:\PROGRAM FILE\VTK\VTK5.8.0\Rendering";"E:\PROGRAM FILE\VTK\VTK5.8.0\Graphics";"E:\PROGRAM FILE\VTK\VTK5.8.0\VolumeRendering";"E:\PROGRAM FILE\VTK\VTK5.8.0\Imaging";"E:\PROGRAM FILE\VTK\VTK5.8.0\Hybrid";"E:\PROGRAM FILE\VTK\VTK5.8.0\GUISupport";"E:\PROGRAM FILE\VTK\VTK5.8.0\include\vtk-5.0";"E:\PROGRAM FILE\VTK\VTK5.8.0\Parallel";"E:\PROGRAM FILE\VTK\VTK5.8.0\lib"
8.2 附加依赖项,位于项目属性->链接器->输入 的第一项,拷入入下述内容(具体可通过查看实例的附加包含目录,切勿直接负责..\..\性质的内容,若想直接复制,请确保新建项目与拟拷配置的项目位于同一文件夹下):
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib vtkWidgets.lib vtkHybrid.lib vtkRendering.lib vtkGraphics.lib vtkImaging.lib vtkIO.lib vtkFiltering.lib vtkCommon.lib vtksys.lib vtkVolumeRendering.lib
8.3 然后右击Cone6,选择调试->启动新实例,看到Cane6的实例窗口
要添加环境变量;
E:\VTK 5.8\Bin\bin\Debug