目录
- 前言
- 一、安装Visual Studio2017
- 1)官网下载可执行的安装程序
- 2)安装
- 3)启动
- 二、安装Qt 5.9.9
- 1)下载可执行的安装程序
- 2)安装
- 3)配置环境变量
- 三、安装Cmake
- 1)下载可执行的安装程序
- 2)安装
- 四、VTK的下载、配置、生成
- 1)下载VTK
- 2)VTK的配置、生成
- 五、将VTK与Qt连接起来
- 1)在Qt的designer中加入VTK控件
- 2)在Visual Studio 2017中引入Qt
- 3)在Visual Studio 2017中引入VTK
- 六、结束语
前言
作为一个只浅学过C语言和C++的纯小白,在编译VTK(visualization toolkit)并与Qt结合的过程中遇到了很多问题,零零碎碎也看了许多文章教程,但由于版本兼容、过程不完整等问题走了许多弯路,最后东拼西凑勉强完成,故写下这篇文章供大家参考。
本文主要目的是安装vs2017,Qt,Cmake以及VTK,并使Qt和VTK均可以在vs2017中使用。
一、安装Visual Studio2017
1)官网下载可执行的安装程序
首先,到Visual Studio官网(www.visualstudio.com)下载安装工具。
在搜索栏处搜索就能找到包括2017等以前版本
附直达网址:较古老版本——https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/
2)安装
VS 2017 下载完成后,双击下载好的可执行文件即可进入安装界面:
1、点击 “继续” 按钮,此时会弹出一个进度条:
2、等进度条完成后,会直接跳到下面的页面:
3、选择工作负载、组件,确定安装位置:
我们只需要安装 “使用C++ 的桌面开发” 即可,其他如有需要可自行安装;
同时在这个页面,还可以选择 VS 2017 的存储位置;
然后直接点击安装,此过程可能需要一段时间,请耐心等待。
4、安装完成:
VS 2017 会要求重启计算机,按要求重启即可。
安装成功后,首次使用 VS 2017 还需要对其进行简单的配置,包括开发环境和软件本身的主题风格。
启动Visual Studio 2017,会提示让你登陆,可以登录、注册,当然直接略过也可。
3)启动
接下来选择配置开发环境:
我们使用主要进行的是 C/C++ 程序开发,所以选择 “Visual C++” 这个选项,至于颜色主题选个顺眼的就行,然后点击 “启动 Visual Studio” 按钮。
最后,再等待几分钟的准备过程启动就成功啦!
二、安装Qt 5.9.9
1)下载可执行的安装程序
同样先在Qt中文官网(https://www.qt.io/zh-cn/)下载安装工具。
附直达地址:Qt Download—— https://download.qt.io/archive/qt/
Qt5.9是长期支持版,会在较长的时间内获得安全、维护和(有时有)功能的更新,因此我们选择5.9.9
2)安装
双击下载好的可执行文件即可进入安装界面:
1、点击”Next“
2、登录账号,没有的话去官网注册一个即可
3、选择安装位置
(注意,安装路径不能带空格、中文字符或者其它任何特殊字符,Qt的任何相关路径都不能出现中文)
4、选择需要的组件
QT中有很多的组件,抱歉我不是很懂,所以我把我觉得可能有用都下载了,我们要使用vs2017所以其中MSVC 2017 64-bit是必要的,其他的组件大家可以按照需求下载。但是选择组件较多时,会占用比较大的内存,如果你的内存不够,最好还是多查一查。以下是我的选择。
5、接着选择”下一步“,”下一步“就完成了
3)配置环境变量
1、右击计算机—属性,点击高级系统设置—环境变量
2、接下来点开系统变量中的Path,点击”新建“,输入Qt安装所在路径下的msvc2017_64\bin文件夹,然后确定(如果你曾经为python配置过环境,一定要点击”上移“将Qt的路径移动到python的路径上方)
完成以上内容,Qt便安装完成了!
三、安装Cmake
1)下载可执行的安装程序
在官网下载安装程序
直达网址:Cmake Download——https://cmake.org/download/
进入Cmake下载网页后,我们选择最新的3.25.1版本,在文件列表中我们选择最便于安装的msi(环境:Windows 64位),如下图所示。
2)安装
下载完成后双击进行安装
1、欢迎界面,点击“Next”
(因为下载完成后有些下载页面就无法打开了,因此借用了一些别人的图片)
2.同意协议,点击“Next”
3、选择第二个选项(安装程序会将文件目录添加至所有用户的系统环境变量中),点击“Next”
4、选择安装目录(小提示:这个软件不大只有100MB左右),点击“Next”
5、点击“Install”,等进度条走完便安装完成了
(因为之前选择了自动添加到系统变量for all users,因此我们不需要再手动配置环境)
四、VTK的下载、配置、生成
1)下载VTK
直达地址:VTK官网——https://www.vtk.org/download/
1、我们选择8.2.0版本,下载VTK-8.2.0.zip,如下图所示:
(.zip是window系统的,.tar.gz是Linux系统的,不知为何最新的9.2.5没有ZIP)
VTKData和VTKLargeData都是官方示例程序中的数据,如有需要可自行下载。
2、创建一个目录(最好不要在C盘),命名为VTK,在其中新建五个目录,分别命名为vtk_src、vtk_bin、vtk_res、vtk_debug、vtk_release,操作完成的结果如下图所示:
(scr存放的是解压后的vtk文件;bin存放的是编译出来的项目文件;res作为中转;debug存放debug生成的文件;release存放release生成的文件)
3、将VTK-8.2.0.zip解压到vtk_src文件夹中
2)VTK的配置、生成
1、打开Cmake(之前看文章说有的电脑要以管理员身份运行不然后续Configure会卡住,但我没有遇到此类问题,写出仅供大家参考)。选择两个路径,第一个是指源文件所在路径即vtk_src,第二是指编译生成的文件路径即vtk_bin。下面两个可选框Grouped和Advanced,推荐都勾上,其中Grouped会让结果以分类形式呈现,更加方便寻找;Advanced则会有更多的选项。然后点击“Configure”。
2、点击“Configure”后出现此窗口,选择对应版本的编译器,如果选择不对,后面可能会提示错误需要回到这边重新选择。如果你是x64的最好选择x64。
此处我们第一栏选择Visual Studio 15 2017,第二栏选择x64,第三栏空中即可,下面四选一用默认的第一个即可,如下图然后点击“Finish”。
3、之后需要稍等一会儿了,待进度条走完后,便会出现一个喜庆的红色界面,全部报错,把寄打在公屏上,开个小玩笑,这个只是要求你进行设置的确定并不是报错。
我们需要勾选以下内容:
(蓝线划出的即是更改的地方)
BUILD_SHARED_LIBS 动态编译,勾选上(我的默认是勾上的)。
BUILD_EXAMPLES 是官方示例程序,建议勾上但不是必须。
CMAKE_INSTALL_PREFIX 这个表示vtk最后生成的链接库的位置,默认是C:/ProgramFiles /VTK,我们改为E:/VTK/vtk_res。
VTK_Group_Qt 勾选上。
4、勾选完成后再次点击“Configure”,这次耗时会短很多,红色区域变少了,主要是Qt方面的。
将Qt5_DIR等以Qt_5开头的选项,改成自己Qt中 5.9.9/msvc2017_64/lib/cmake/* 中对应的位置,如下图(如果你之前Qt环境配置正确这里应该是默认填好的)
5、再次“Configure”,这时候红色消失了,点击“Generate”,然后等待进度条走完即可。
6、打开VTK项目
注意,不要直接在Cmake中点击open project。
因为在CMAKE_INSTALL_PREFIX路径下写入文件需要管理员权限。所以我们在桌面上右击Visual Studio 2017,以管理员身份运行,然后在程序内打开VTK.sln。(VTK.sln就在我们之前建的vtk_bin当中)
7、右击右边解决方案资源管理器里的ALL_BUILD,点击“生成”,这时候会开始编译,这个过程时间有点小长,我大概用了二十分钟。
8、在编译完成后,在工具栏选择Release x64,右击右边解决方案资源管理器里的INSTALL,点击“生成”(如果在这一步报错setlocal,很有可能是没有使用管理员身份运行)
9、等进度条走完vtk_res文件夹里出现了一些文件夹,将它们 剪切 到vtk_release中即可。
10、清空vtk_res后,在工具栏选择Debug x64,再次右击右边解决方案资源管理器里的INSTALL,点击“生成”,这次将vtk_res中生成的文件夹移动到vtk_debug中。
至此,VTK的下载,配置,生成终于完成!
五、将VTK与Qt连接起来
因为Qt引入头文件很麻烦,要在.pro把每个头文件写一句引入语句,我不会什么快捷方法,有大佬写了脚本有兴趣可以查一查。但是我比较熟悉Visual,它的引入头文件就很简单,所以我选择把VTK和Qt都在Visual Studio 2017打开,虽然步骤多但是简单移动适。
1)在Qt的designer中加入VTK控件
找到vtk_release\plugins\designer中的QVTKWidgetPlugin.dll
将其复制到你的Qt目录Qt_5.9.9\5.9.9\msvc2017_64\plugins\designer目录下
在Qt_5.9.9\5.9.9\msvc2017_64\bin目录下打开designer.exe,就会增加控件,如图:
2)在Visual Studio 2017中引入Qt
1、打开Visual Studio 2017,在工具栏打开工具,点开其中的“扩展和更新”,选择联机,并在右侧搜索框搜索Qt,下载Qt Visual Studio Tools。
2、下载好了以后在工具栏会出现 “Qt VS Tools”,接下来点击选择Options。
3、出现以下窗口,选择Qt,Versions,点击。点击黄色的文件夹图标,然后选择你的Qt目录Qt_5.9.9\5.9.9\msvc2017_64\bin中的qmake.exe
完成后如下:
4、我们先新建一个Qt项目,如图,不用改默认选项,一路“Next”、“Finish”即可。
(之后在VS中新建Qt项目都要重复 4 到 9 的步骤)
5、工具栏选择“Qt VS Tools”,接下来点击选择“Qt Project Settings”
6、在“配置属性”(注意修改的配置、平台和使用的要相同)里选择“VC++目录”,在右边点击包含目录,点击最右边的小箭头,点击编辑
7、点击右上角的黄色文件夹,在其中添加你的Qt目录中的Qt_5.9.9\5.9.9\msvc2017_64\include和Qt_5.9.9\5.9.9\msvc2017_64\lib
8、接下来我们要改变VS的字符编码格式,不然在VS中用Qt写中文字符会报错。
在“配置属性”里选择“常规”,在“字符集”处选择“使用多字节字符集”
9、在“配置属性”里选择“XML文档生成器”,在“命令行”处“其他选项”中的最后加入“/utf-8”
10、如果想要使用ui,可以根据需要添加
在“配置属性”选择“Qt Project Settings”。在Qt Modules 中应该至少包括 core, gui, widgets,点击右边小箭头以添加ui tools,如下图所示:
理论上,此时的Qt项目就可以正常运行了!
但实际上我还是遇到了问题,新的Qt项目可以运行,但原来写的Qt项目现在运行会报错,我又去查了查,发现原来是windows SDK的版本问题,解决方法如下:
11、右击项目,选择“重定向项目”,选择新的版本即可,如下图:
完成以上步骤,就彻底完成了!!
3)在Visual Studio 2017中引入VTK
这个就简单很多了,把VTK编译生成的头文件放进包含目录,再引入附加依赖项即可,可以参考上面Qt放入的步骤。
(也是之后在VS中新建项目都要重复,但我确实没想到什么好办法)
在“配置属性”里选择“VC++目录”,在右边点击包含目录,点击最右边的小箭头,点击编辑。
点击右上角的黄色文件夹,在其中添加你的VTK目录中的VTK\vtk_release\include和VTK\vtk_release\lib
在“配置属性”里选择“链接器”中的“输入”,在右边点击“附加依赖项”,点击最右边的小箭头,点击编辑。
在其中加入VTK\vtk_bin\lib\Debug和ITK\Build\lib\Debug中所有的.lib文件
(此处以Debug为例,可改为Realse)
当然一个一个文件名复制不太现实,或者说太不现实,以下有一个我找到的简单方法
简单方法如下:
(此处以itk为例,vtk参照以下步骤重复即可)
1、找到对应的目录
2、在上方路径栏输入“cmd”
3、在命令行输入“dir /b *.lib>1.txt”
4、然后就会在对应目录下会新建一个 1.txt 文件,该文件包含当前目录下所有的.lib文件,直接复制粘贴即可使用
六、结束语
作为一个纯纯的小白,为了完成以上内容我看了很多文章,但多少都有点问题,不是太古老就是我操作中会报错,还有内容不完整的。我是一边查资料一边试验,零零散散的拼凑,所以我也不敢保证我说的全部正确,如有错误欢迎指正。
而且我也是初次学习使用VTK,如果有更好的使用方法,欢迎大家交流。