win8.1-64bit, VS2010, vtk5.10.1, itk4.3, igstk5.2, cmake2.8.12.2, Qt4.8.6。 
虽然我是64位系统,但是以上编译都是采用release , win32的!这个一定要注意。

https://sourceforge.net/projects/itk/files/itk/4.3/

版本不一样不能保证编译正确。比如,之前用itk4.7.1就会莫名其妙出现各种错误,现在用以上的配置可以编译正确。

CMake设置就不多说了,用qt的话选择IGSTK_USE_QT。 
其他设置都是按照编译vtk,itk等的老路子来吧。

如果编译INSTALL时出现以下错误: 
CMake Error at cmake_install.cmake:51 (FILE): 
file INSTALL cannot find 
“E:/IGSTK/IGSTK5.2_VS2010_VTK5.10.1_ITK4.3.1_Qt4.8.6/IGSTK-Build/IGSTKBuildSettings.cmake”.

解决办法: 
更改igstk 源文件 中的CMakeLists.txt 中: 
${IGSTK_BINARY_DIR}/IGSTKBuildSettings.cmake 
将其删去,或注释掉,编译通过。

有时候可能需要将原来生成exe的工程更改为生成lib,这时候需要更改相应工程的CMakeLists.txt文件,找到工程的代码add_executable()。再后边添加 add_library()命令用来生成lib文件。

 1. 下载:(VS2010就自己在网上找了咯,这里不提供具体路径下载了)
vtk-5.10.1.zip源程序
vtkdata-5.10.1.zip 数据
vtkDocHtml-5.10.1.tar.gz (文档可以不下载)
(vtk相关安装程序下载:http://vtk.org/VTK/resources/software.html)
cmake-2.8.11.1.zip

(cmake程序下载:http://www.cmake.org/cmake/resources/software.html)

2.VTK安装于保存:
    建立将要安装vtk的文件夹,例如:...\VTK。在此文件夹下,建立如下4个文件夹:
..\vtk 用于置放源码(解压vtk-5.10.1.zip更名为vtk)
..\vtkdata      用于置放数据(解压vtkdata-5.10.1.zip更名为vtkdata)
..\bin          用于编译(新建一个就好命名由自己决定)
..\doc        放置文档(可以不下载当然就意味着可以不要)

3. 先安装CMake,然后利用CMake编译:
 ------------------------------------------------------------------
       where is the source code:      ...\VTK\vtk
       where to build the binaries:   ...\VTK\bin
 ------------------------------------------------------------------
    然后Configure。祈祷不出现进程MSDEV.EXE死机的情况——如果不幸出现了,Delete Cache,(最彻底的办法是把整个bin文件夹清空),然后——try again!
此后,修改Cache Values,可以参考如下设置(是我自己的设置):
 -------------------------------------------------------------------
       BUILD_EXAMPLES                    ON
       BUILD_SHARED_LIBS                ON
        (将多生成dll文件,可以用动态库编程)
       BUILD_TESTING                      OFF
       CMAKE_INSTALL_PREFIX          C:\Program Files\VTK
        (注:很多解压出来的dll,lib会存放于此)
       VTK_DATA_ROOT                   ...\VTK\vtkdata
       VTK_USE+GUISUPPORT           ON
        (否则用MFC会有问题)
         VTK_USE_MFC                    ON
         VTK_USE_MPEG2_ENCODER   ON
        (如果缺少受版权保护的vtkMPEG2Encode.lib,这里无法打开mpeg2,只能设置off。当拿到这个lib以后,可以设为on,然后把这个lib存放于下面的路径中。)
         vtkMPEG2Encode_INCLUDE_PATH  C:\Program Files\VTK\include\vtk-5.0
         vtkMPEG2Encode_LIBRARIES  C:\Program Files\VTK\lib\vtkMPEG2Encode.lib
       VTK_USE_PARALLEL               OFF
        (这个是并行计算相关的)
       VTK_USE_QVTK                    OFF
       VTK_USE_RENDERING             ON
        (这个我确实没搞懂到底如何设置)
 -------------------------------------------------------------------

修改完毕以后再次Configure,等红色高亮部分都变白,则宣告make成功,此时OK,祈祷不出现报错信息。

4.编译Camke生成的工程文件:

用 vc++2010打开 D:\VTK\VTKbin\Utilities\MaterialLibrary目录下的MaterialLibrary.sln 文件,右键点击All_Build选择重新生成。

5. 若build_shared_libs 选择On,把D:\VTK\VTKbin\bin\Debug里生成的vtksys.dll文件拷到windows/system目录下。或者打开VS2010的属性管理器(视图->其他窗口->属性管理器),双击任意“Microsoft.Cpp.Win32.user”,弹出属性页,在里面VC++目录的 Library Directories 中将bin文件夹中的Debug包括进去。

6.有可能会遇到的麻烦:

打开D:\VTK\VTKbin目录下的VTK.sln,右键点击All_Build选择重新生成。
    若build_shared_libs选择On,中途涉及MFC的示例会出错,
错误①
Link错误:
a.在Solution Explorer中分别找到vtkDLG、vtkMDI、vtkSDI这三个项目,
右键—>Properties—>Configuration Properties—>Linker—>Input—>在Additional Dependencies中添加..\..\..\..\..\bin\Debug\vtkIO.lib
b.再找到Win32SampleMFC这个项目,与以上类似,添加..\..\..\..\bin\Debug\vtkIO.lib这样,就为这些项目加入了vtkIO.lib库。

在将VC6.0程序转换成VS2010之后,弹出此错误,有两种方法可以解决此问题,根据具体情况设定,呵呵

(1)修改stdafx.h中信息,如下所示

#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers 
        #include <afxwin.h>         // MFC core and standard components  
        #include <afxext.h>         // MFC extensions 
        #include <afxcview.h>

修改如下:

#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers 
        #define _WIN32_WINNT 0x0501 //可根据系统类型设定
        #include <afxwin.h>         // MFC core and standard components 
        #include <afxext.h>         // MFC extensions 
        #include <afxcview.h>

错误②
This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.
解决办法为:
右击_WIN32_WINNT,查找所有引用,将查找出的文件中的4个stdafx.h文件中的如下部分改动为:
找到五个工程:vtkDLG、vtkMDI、vtkSDI、Win32SampleMFC、vtkMFC
a.打开前四个工程源文件中的stdAfx.h,
如果找不到,则打开<资源文件>中的stdAfx.cpp,打开找到其中#include "stdAfx.h" ,右击:<打开"stdAfx.h">
b.打开vtkMFC工程的vtkMFCWindow.cpp,按如下方法修改
(注:a.4个stdafx.h
3个都是在{解压的vtk5.10.1的目录}\Examples\GUI\Win32\vtkMFC\  下面,你可以搜索一下,共4个stdafx.h,都改
1个在{解压的vtk5.10.1的目录}\Examples\GUI\Win32下面
b.一个 vtkMFCWindow.cpp, 在{解压的vtk5.10.1的目录}\GUISupport\MFC

 
// Modify the following defines if you have to target a platform prior to the ones specified below.
// Refer to MSDN for the latest info on corresponding values for different platforms.
 #ifndef WINVER        // Allow use of features specific to Windows 95 and Windows NT 4 or later.
 #define WINVER 0x0601    // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
 #endif
 
 #ifndef _WIN32_WINNT    // Allow use of features specific to Windows NT 4 or later.
 #define _WIN32_WINNT 0x0601    // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
 #endif            
 
 #if _MSC_VER >= 1300
 #ifndef _WIN32_WINDOWS    // Allow use of features specific to Windows 98 or later.
 #define _WIN32_WINDOWS 0x0601 // Change this to the appropriate value to target Windows Me or later.
 #endif
 #endif
 
 #ifndef _WIN32_IE      // Allow use of features specific to IE 4.0 or later.
 #define _WIN32_IE 0x0800  // Change this to the appropriate value to target IE 5.0 or later.
 #endif
 
红字对应的是win7版本。
另外还要改动文件vtkMFCWindow.cpp中的部分代码:
// Allow use of features specific to Windows 95 and Windows NT 4 or later.
#ifndef WINVER
#define WINVER 0x0601
#endif

// Define _WIN32_WINNT and _WIN32_IE to avoid the following error with Visual
// Studio 2008 SP1:
// "C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\sdkddkver.h(217) :
// fatal error C1189: #error :  _WIN32_WINNT settings conflicts with _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
此时,应该没有问题了。
若出现cannot find vtkMFC.lib则是由于cmake阶段未勾选vtk_use_mfc  
然后右击Cone6,选择调试->启动新实例,这时可以看到正确运行的程序了。(注:Cone6需要你CMAKE时勾选build_examples:)
新建项目的配置
1. 新建项目Test(控制台应用程序空项目),增加Test.cpp文件,用Cone6.cxx的文件内容覆盖Test.cpp的内容。
1.1 配置附加包含目录,位于项目属性->配置属性->c/c++/常规 的第一项,拷入入下述内容(具体可通过查看实例的附加包含目录):
D:\VTK\bin;D:\VTK\bin\Common;D:\VTK\bin\Utilities;D:\VTK\vtk5.0\VolumeRendering;D:\VTK\vtk5.0\Graphics;D:\VTK\vtk5.0\Filtering;D:\VTK\vtk5.0\Common;D:\VTK\vtk5.0\Rendering;%(AdditionalIncludeDirectories)
1.2 附加依赖项,位于项目属性->链接器->输入 ->点击右面的<编辑>,拷入入下述内容(具体可通过查看实例的附加包含目录,切勿直接负责..\..\性质的内容,若想直接复制,请确保新建项目与拟拷配置的项目位于同一文件夹下):
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
comdlg32.lib
advapi32.lib
..\..\VTK\bin\bin\Debug\vtkRendering.lib
..\..\VTK\bin\bin\Debug\vtkGraphics.lib
..\..\VTK\bin\bin\Debug\vtkImaging.lib
..\..\VTK\bin\bin\Debug\vtkFiltering.lib
..\..\VTK\bin\bin\Debug\vtkCommon.lib
..\..\VTK\bin\bin\Debug\vtksys.lib
ws2_32.lib
 
1.3
将D:\vtk\bin\bin\debug这个文件夹选择此中所有的DLL 后缀的文件全部复制到c:\windows\system32 (调试时推荐),或者拷贝到VC项目可执行文件所在位置(安装到其他机器时拷贝)。
1.4    后右击Cone6,选择调试->启动新实例,看到Cane6的实例窗口
(可以修改
  for (i = 0; i < 360; ++i)
中的360改更为大数值如7200 效果会稍微明显一点)

t-vtk-vs2010整合

一、系统环境:xp(sp3)32位

二、Vs2010安装

1版本:旗舰版

2代码助手:visualassistant x

3打开vs2010:工具-选项-项目和解决方案:更改路径使其不包含中文

三、qt安装

1版本:4.8.6

2安装顺序:1)qt-opensource-windows-x86-vs2010-4.8.6.exe

2) qt-vs-addin-1.1.11-opensource.exe

http://download.qt.io/official_releases/vsaddin/

3环境变量配置:PATH变量,添加c:\Qt\4.8.6\bin;添加QTDIR变量,c:\Qt\4.8.6。

打开之后就会看到vs工具栏中已经有了qt,如图:

四、vtk

1版本:cmake-2.8.12.2-win32-x86.zip

vtk-5.10.1.zip

vtkdata-5.10.1.zip

2创建目录和解压如下:

3运行:

4配置source和build目录后,点击configure

5选中Advanced后

勾选如下:(若找不到,点击configure后会出现,先把已有的选上)

BUILD_SHARED_LIBS

CMAKE_INSTALL_PREFIX:配置为C:/VTK

VTK_DATA_ROOT:C:/VTK/vtkdata-5.10.1/VTKData5.10.1

VTK_USE_GUISUPPORT

VTK_USE_QT

QT_QMAKE_EXECUTABLE:C:/Qt/4.8.6/bin/qmake.exe

详情见官网:http://www.vtk.org/Wiki/VTK/Configure_and_Build#Qt_4.8..2A

然后点击多次configure,直到没有红框为止

最后点击generate

6打开:

7

大约半小时完成

8

完成后,会多出如下目录

9更改模式为release

重复第7步或者如下方式

完成后会在C:\VTK\vtkbin\Win32\Release找到:qvtkwidgetplugin .lib和qvtkwidgetplugin .dll

将其拷到:C:\Qt\4.8.6\plugins\designer,这是打开qtdesigner会看到

10

VTK\bin下所有dll文件拷到:C:\Windows\system32下

VTK\include\vtk-5.10下所有拷到:C:\Qt\4.8.6\include

VTK\lib\vtk-5.10 下所有拷到C:\Qt\4.8.6\lib

新建qt工程会搜索qt默认目录,不然每次工程属性都要配置vtk路径

四、新建工程示例

1 打开vs2010,新建项目

2

点击finish

3

4 编辑:附加依赖项,添加qvtk.lib

一般会把已有的vtklib都添加进来:lib之间回车隔开

qvtk.lib

vtkCommon.lib

vtkDICOMParser.lib

vtkexoIIc.lib

vtkexpat.lib

vtkFiltering.lib

vtkfreetype.lib

vtkftgl.lib

vtkGenericFiltering.lib

vtkGeovis.lib

vtkGraphics.lib

vtkHybrid.lib

vtkhdf5.lib

vtkImaging.lib

vtkIO.lib

vtkInfovis.lib

vtkjpeg.lib

vtklibxml2.lib

vtkmetaio.lib

vtkNetCDF.lib

vtkpng.lib

vtkproj4.lib

vtksqlite.lib

vtkRendering.lib

vtksys.lib

vtktiff.lib

vtkViews.lib

vtkVolumeRendering.lib

vtkWidgets.lib

vtkzlib.lib

5打开项目中:.ui

6添加qvtk控件后保存

7启动调试

8出现

Success

1.下载qt-opensource-windows-x86-vs2010-4.8.6.exe

网址如下:

https://download.qt.io/archive/qt/4.8/4.8.6/qt-opensource-windows-x86-vs2010-4.8.6.exe

下完找个地方安即可

2.下载qt-creator-windows-opensource-2.8.0

http://download.qt.io/official_releases/vsaddin/

网址如下:

https://download.qt.io/official_releases/qtcreator/2.8/2.8.0/qt-creator-windows-opensource-2.8.0.exe

下完找个地方安

这里先大概说下 creator 和 qt库之间的关系

creator就是个IDE,里面是空架子,没有编译器,调试器等,这些都得自己去填充

而QT库就是它自己的一个图形库什么的

所以光有这些还不够

你电脑上还得有自己的编译器和调试器

编译器的话,我们这里用VS2010里面自己带的

使用 VS 2010 编译 ITK.

1. 下载 CMake:  http://www.cmake.org/cmake/resources/software.html 选择需要的版本.

我使用的是 cmake-2.8.10.2-win32-x86.exe. 然后安装.

若在安装过程中选择了在桌面显示图标, 则桌面会显示 CMakeSetup(deprecated) 这个图标, 而不是 CMAKE

路径中的 CMake (cmake-gui) 图标. 这里使用 CMakeSetup(deprecated), 操作稍有不同. ITK 官网提供的

文档中, 安装使用的也是 CMakeSetup.

2.下载 ITK: http://www.itk.org/ITK/resources/software.html , 这里下载的版本是

InsightToolkit-4.3.2.zip

3. 在 D 盘新建文件夹: D:/I_VTK/ITK , 之所以要多建立一个 ITK 文件夹, 是为了以后 ITK, VTK 混合编程,

这里暂时只编译 ITK

4. 解压  InsightToolkit-4.3.2.zip 到  D:/I_VTK/ITK, 重命名为InsightToolkit-4.3.2, 即 D:/I_VTK/ITK/ITK-3.14.0

5. 再建立一文件夹 ITK_bin, 作为 ITK 编译目标. D:\I_VTK\ITK\ITK_bin

6. 打开 CMAKE 进行配置. 假设你已经安装好 VS2010

Where is the source code: 点击 Browse, 选择刚才 ITK 源码目录: D:\I_VTK\ITK\InsightToolkit-4.3.2

Where to build the binaries: 点击 Browse, 选择 ITK 编译目标: D:\I_VTK\ITK\ITK_bin

7.点击 Configure 进行配置, 选择编译器,这里选择 Visual stdio 10, 等待,之后出现如下界面

为了加快安装进度,可以将选项BUILD TESTING 和BUILD EXAMPLES 都不勾选(ps:如果你想同时编译ITK 所提供的示例, 用于测试ITK 的示例, 则BUILD_EXAMPLES, BUILD_TESTING 选择为ON,但编译时间会很长. ),

勾选BUILD_SHARED_LIBS(ps:BUILD_SHARED_LIBS 若选择为 ON, 则会 ITK 生成的库文件编译成 DLL 动态链接库形式.),

勾选Advanced之后更改CMAKE_INSTALL_PREFIX(表示编译ITK后生成的 lib 及头文件等安装路径)目录

可以设置为 D:/I_VTK/ITK

再次点击 Configure, 直至所有条目都变成灰色,表示配置成功, 点击 Generate确认.

8. 在 D:\I_VTK\ITK\ITK_bin目录下找到 ITK.sln, 点击,使用 VS2010进行编译.

具体方法:打开D:\I_VTK\ITK\ITK_bin里面的ITK.sln文件,雷同VTK的生成解决方案,点击:生成->生成解决方案。如果没有错误,在解决方案里面找到Install文件,选中点击右键->仅用于项目->仅生成INSTALL。(如果编译过程中有错误,应该删除D:\I_VTK\ITK\ITK_bin里面的文件,重新安装)

则会在 D:/I_VTK/ITK 目录生成 lib, include 等文件夹

lib目录存放的是D:/I_VTK/ITK/ITK-3.14.0-bin/bin/debug 中的 ITK lib 文件.

include 则存放 ITK 所有的头文件. bin 目录存放的是 ITK 生成的一些可执行文件。

这里没有必要选择 INSTALL, 因为 D:/I_VTK/ITK/ITK-3.14.0 中这些文件都已经存在.

不过选择编译 INSTALL, 安装 ITK,会使目录结构更加清晰。不使用 CMAKE 自动配置时比较方便。

9.由于2010不需要添加lib等库文件、包含文件;

环境变量设置:我的电脑->属性->高级->环境变量->添加:D:\I_VTK\ITK\ITK_bin;

将D:\I_VTK\ITK\bin中的.dll文件拷贝到C:\WINDOWS\system32中;

到此完成。

编译IGSTK5.2相关推荐

  1. go build 编译报错 missing go.sum entry for module providing package

    go build 编译报错 missing go.sum entry for module providing package 解决方法 // 移除未使用的依赖 go mod tidy 再次编译,就可 ...

  2. kotlin重写构造方法编译报错:Primary constructor call expected

    在kotlin中使用construct关键字定义构造方法,如果类定义时已经有构造方法(类名后带括号),需要添加构造方法时,需要使用以下写法: class User(var name,var age){ ...

  3. Myeclipse中项目没有代码错误提示,jsp页面无编译迹象?如何解决

    在使用Myeclipse开发项目时,发现jsp页面中嵌入的java代码没有编译的迹象,错误的get方法没有报错,没有报错信息我们如何知道我们开发的内容是正确的呢? 接下来就演示一下如何解决

  4. 初试linux编译(ubuntu+vim)+玩转智能蛇

    一.初试linux编译(ubuntu+vim) 步骤: ①下载vmware15+ubuntu桌面版映像 ②安装ubuntu ③下载vim+gcc 在ubuntu终端输入: sudo apt-get i ...

  5. java调用clang编译的so_写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实

    好奇害死羊 很多小伙伴们做Java开发,天天写Java代码,肯定离不开Java基础环境:JDK,毕竟我们写好的Java代码也是跑在JVM虚拟机上. 一般来说,我们学Java之前,第一步就是安装JDK环 ...

  6. Go 编译的可执行文件是否有动态库链接?

    Go 引用了其他包的话,是将引用的包都编译进去.用 ldd 看几个 Go 编译出来的二进制程序有的没有动态链接库的使用.但是有的又有引用动态链接库,这个是为什么? 回答:Go 默认是开启 CGO_EN ...

  7. Go 知识点(18)— 条件编译(编译标签、文件后缀)

    1. 条件编译 Go 能根据所处环境选择对应的源码进行编译.让编译器只对满足条件的代码进行编译,将不满足条件的代码舍弃,这就叫做条件编译. 在 Go 中,也称之为 Build Constraints ...

  8. RPC 笔记(03)— gRPC 概念、安装、编译、客户端和服务端示例

    1. gRPC 概念 gRPC 是 Google 开源的一款高性能的 RPC 框架.GitHub 上介绍如下: gRPC is a modern, open source, high-performa ...

  9. GCC 同时编译多个 C/C++ 文件

    以下这些操作都可以共用一条 gcc 指令: 将多个 C/C++ 源文件加工为汇编文件或者目标文件: 将多个 C/C++ 源文件或者预处理文件加工为汇编文件或者目标文件: 将多个 C/C++ 源文件.预 ...

最新文章

  1. 怎样用springboot开发cs_SpringBoot分布式任务中间件开发 附视频讲解 (手把手教你开发和使用中间件)...
  2. 【django】项目开发准备【1】
  3. 结对编程Wordcount
  4. python php multiprocessing,Python多进程并发(multiprocessing)用法实例详解
  5. python qt信号在qml 的使用_Python和C++混合使用QML开发GUI
  6. form input类型
  7. java timer demo_java中任务调度java.util.Timer,ScheduledExecutor,Quartz的机制说明和demo代码实例分享...
  8. 网速测试软件win10,win10系统测试网速的操作方法
  9. c语言数字转成大写,c语言 数字变大写 代码
  10. dna计算机ppt模板,七、DNA与蛋白质序列同源分析(进化树构建).ppt
  11. Python爬虫进阶--js逆向 | 某某云加速参数加密分析
  12. 第二十八篇 -- 学习第五十一天打卡20190819
  13. 恒源云(GPUSHARE)_Teacher Forcing训练小技巧来啦~
  14. 名帖181 黄庭坚 行书《苦笋赋》
  15. C++数独求解器与生成器
  16. 公交线路查询系统 C++实现 图
  17. 美创科技深度参编的《数据安全治理实践指南(2.0)》发布
  18. SNAT和DNAT简介
  19. 宜信支付结算账户系统浅析
  20. 深度学习中的Momentum算法原理

热门文章

  1. controller是什么意思_光谈理论有什么意思,附源码带大家实操SpringBoot
  2. android 百度导航滑动会异常,百度导航Android版问题集
  3. mysql duplicate jpa_SpringBoot Jpa 双数据源mysql + oracle + liquibase+参考源码
  4. 电脑文件加密_电脑文件加密软件哪个好?企业加密软件排行榜
  5. 【c语言】蓝桥杯基础练习 时间转换
  6. hdu1693Eat the Trees(插头dp)
  7. ifcfg系列命令配置网络属性
  8. Ext JS 6正式版的GPL版本下载地址
  9. 如何解决…has been modified since the precompiled header… was built的问题
  10. 在FreeBSD下安装mysql+apache+php