VS2013下QT5.4+VTK7.1.1的编译

/****************************************************

QT5.4的安装

**************************************************/

1.首先我们先安装QT5.4,由于是使用vs2013,这里我们下载对应版本的QT,这里我选择的时36位的版本。

http://download.qt.io/archive/qt/5.4/5.4.2/

另外为了能够结合vs2013,我们还要下载vsaddin可以随便选择一个进行下载。

2.对QT5.4和vsaddin进行安装,这里我先安装QT,安装时可以选择自定义的路径我选择的路径为D:\Qt,即在该目录下进行安装,安装时的组件可以选择默认。完成安装后进行环境变量的配置。

由于我选择的路径为D:\Qt\,那么设置QTDIR为该目录,并在Path中进行配置,注意定位至bin文件夹。

3.之后我们安装vsaddin,直接安装即可,然后我们可以打开vs2013,可以发现在菜单中多出了QT5的选项,我们打开其中的Qt Options,在Qt versions中添加名为msvc2013_opengl的对象,并设置路径。至此完成Qt5的安装,这样我们可以通过Qt5进行编写,另外在安装Qt5时,安装包也为我们装上了QtCreator,我们也可以用它进行Qt的编写。

Qt Creator

/************************************************

VTK7.1.1的编译

************************************************/

1.首先对VTK7.1.1的源码进行下载https://www.vtk.org/download/

2.这里我现在D盘新建了VTK的文件夹作为编译的主文件夹,然后在里面新建5个文件夹,分别为

(1)VTK-bin,此处为VTK进行编译时的文件夹

(2)VTK-debug,此处用来存放VTK的debug库版本

(3)VTK-release,此处存放VTKrelease库版本

(4)VTK-res,作为临时安装文件夹

(5)VTK-src,此为VTK原始文件存放位置,即把下载下来的VTK7.1.1源码存放于此

(参考自《VTK 7.0 & QT Creator 5.6  环境配置教程》中科院深圳先进院认知技术中心 CCT 影像教程系列(1)
孙宇 [email protected] 2016.04.27,暂时找不到网址了)

其中的VTKData-7.1.1文件夹为VTK的数据文件,此处暂不使用。

3.接下来我们使用CMake进行编译,CMake可以自行进行下载,打开CMake和VTK-src文件夹,将VTK-src文件夹中的CMakeLists.txt拖至CMake中,其中Where is the source code:为默认,即D:/VTK/VTK-src,Where to build the binaries:选择VTK-bin文件夹,如图所示,点击Configure进行项目生成。

这里我们选择Visual Studio 12 2013来生成项目

3.经过一段较长的时间CMake显示如下,我们可以勾选Group和Advanced

在BUILD中可以勾选BUILD_EXAMPLES和BUILD_SHARED_LIBS

在CMAKE-CMAKE_INSTALL_PREFIX中设置为VTK-res文件夹

INSTALL中的路径也要一一设置

在VTK中勾选VTK_Group_Qt

在VTK_RENDERING_BACKEND中选择为OpenGL,否则用Qt Creator进行编写时添加初始化宏会出错(参考自孙宇的VTK 7.0 & QT Creator 5.6  环境配置教程)

然后继续点击Configure。

4.此时会出现错误,我们将VTK_QT_VERSION的版本修改为5

将QT_QMAKE_EXECUTABLE的目录修改为Qt目录下bin/qmake.exe,若是Qt环境变量配置正确,此处会自动填写,若是没有,则可以自行进行路径的配置,再次点击Configure。

5.若是Qt环境变量配置正确,应该不会出错,如果还有问题,看是否是Qt5_DIR路径问题,并进行改正。

6.接着我们点击Add Entry,设置Name:为CMAKE_DEBUG_POSTFIX,Type:为STRING,Value为d,Description可为空,如下图所示,这是为了让debug版本编译出二进制文件带有后缀d,以便和release版本编译出的二进制文件相区分,强烈建议这么做。(参考自https://wenku.baidu.com/view/749528a433687e21ae45a9bb),再次点击Configure。

7.之后应该不再有错误,可以点击Generate进行项目生成,此时在VTK-bin中会生成相应的项目文件,如下图所示

8.之后找到构建目录下的\GUISupport\Qt\PluginInstall.cmake文件,打开它,把第五行:把

SET(VTK_INSTALL_QT_PLUGIN_FILE "QVTKWidgetPlugin.dll")

修改为

IF(BUILD_TYPE MATCHES Debug) 
  SET(VTK_INSTALL_QT_PLUGIN_FILE "QVTKWidgetPlugind.dll")
ELSE()
  SET(VTK_INSTALL_QT_PLUGIN_FILE "QVTKWidgetPlugin.dll") 
ENDIF()

注意要手动进行修改,不要直接复制粘贴这里的,因为会出现格式不同的问题

如图所示

不修改,debug下install报错,但如果你能理解编译过程,并看懂错误,这个错误其实没什么大不了。同样是为了区别D版和R版后面的d的问题。

9.以管理员身份打开vs2013,打开VTK-bin文件夹下的VTK.sln(务必以管理员身份运行vs,在vs中打开sln),否则后面安装时会出错,可能因为没有权限而无法导出编译的库。我们先生成ALL_BUILD在win32下Debug的生成,生成过程较长,请耐心等待。

10.最后完成debug下的编译,在对CMakePredefinedTargets分支下的INSTALL进行编译,可以选择右键INSTALL,仅用于项目-仅生成INSTALL,编译的库都会拷贝至 VTK-res 目录下

如果在INSTALL过程中出错了,报

if %errorlevel% neq 0 goto :cmEnd 
:cmEnd 
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone 
:cmErrorLevel 
exit /b %1 
:cmDone 
if %errorlevel% neq 0 goto :VCEnd 

的错误,可以在INSTALL右键属性中的配置属性-生成事件-后期生成事件中将在生成中使用改为否(参考自https://blog.csdn.net/yzheately/article/details/50887512),这是因为在进行第8步是直接复制粘贴导致的,如果直接输入不会出现这一问题。

再次INSTALL生成成功。

11.然后将VTK-res文件夹中生成的文件剪切至VTK-debug文件夹下,此为debug版本的VTK文件,

12.开始release版本的编译生成,步骤与debug一致。完成后剪切至VTK-release文件夹。

13.一般情况下我们将获得完整的VTK文件,但是当修改PluginInstall.cmake时出现格式错误时,可能不会生成QVTKWidgetPlugin.dll 插件,我们可以到D:\VTK\VTK-bin\bin\Release下找到QVTKWidgetPlugin.dll,到D:\VTK\VTK-bin\lib\Release找到QVTKWidgetPlugin.exp和QVTKWidgetPlugin.lib,都放入Qt的plugins下的designer文件夹下,我的位置是D:\Qt\Qt5.4.2\5.4\msvc2013_opengl\plugins\designer如下图所示。

(参考自https://blog.csdn.net/annabelle1130/article/details/78597078

如果一切顺利,直接将VTK-debug\plugins\designer中的QVTKWidgetPlugin.dll复制到QT的plugins\designer下用以在Qt designer中嵌入VTK的控件。

这是正常情况下plugins中的QVTKWidgetPlugin.dll文件

粘贴至此

14.此时用vs2013新建一个Qt工程,打开其中的ui文件后可以在designer中可以看到QVTKWidget的控件了,在左下角。

15.在环境变量Path中添加VTK的路径debug和release版本只能添加一个,比如我添加的是D:\VTK\VTK-debug\bin路径至Path

16.我们可以找一个excample进行测试,在VTK.sln点开随机的例子进行效果展示,如图

猜你喜欢

转载自blog.csdn.net/jaggerjack330/article/details/82595523
今日推荐