VS2012编译安装VTK-6.2.0_支持Qt5.2.1
2015-04-23 08:59
639 查看
计算机系统:Win8.1
CPU:i5-5200
1 ExternalData
关于VTK-6.2.0的编译安装,其实和VTK-5.10.1大致相同(VS2012编译安装VTK-5.10.1_支持python),主要区别在于外部数据的使用。下图是VTK官网上6.2.0版本的数据文件:
由上图可见,主要有2种数据文件VTKData和VTKLargeData,解压可见其目录结构为
----.ExternalData
|--MD5
|--README.rst
其中,MD5目录中大约包含2000个如下文件
经过查看发现,上面的并非什么数据文件。查看README.rst,其内容如下
这么说,编译之后是不是会将相关的数据文件保存到这目录中?经过测试发现,也不是!有可能是这些文件的使用方法不对。那么这些文件应该如何使用呢?
1.1 ExternalData_URL_TEMPLATES
使用cmake对VTK-6.2.0进行配置时,有一个ExternalData_URL_TEMPLATES项(参考资料[4]对ExternalData和ExternalData_URL_TEMPLATES都有说明),其说明如下图所示:
从《URL》可以了解到,上图的file:///var/bigharddrive/%(algo)/%(hash)是一种URL格式。由于我将VTKData.zip加压在目录目录中,其中的.ExternalData目录的结构在上面已经有说明。因此将ExternalData_URL_TEMPLATES的值设为:
本来以为在编译过程中,编译器(VS2012)会根据.ExternalData文件的内容来i通过网络获取真正的数据,后来我发现我错了!其实上述.ExternalData/MD5目录中的各个文件就是真正的数据,只不过都以其MD5值来命名而已!例如为文件00d368a21ef258f1658767a93419d0bc添加后缀.png,然后使用图片浏览器打开可见:
注意:并非每个文件都可以通过添加后缀.png然后用图片浏览器打开,只有那些内容为.png格式的文件才可以。可以通过使用二进制阅读器查看文件内容是否以.PNG开头,如果是就很大程度上表面它是一个png格式的图像文件。
因此,在配置VTK-6.2.0时,ExternalData_URL_TEMPLATES可以不设置,不用考虑数据的问题。
由于所有数据文件都是通过其MD5值来命名的,因此使用起来不方便,具体使用方法可见《VTKData-6.2.0的使用方法》。
1.2 VTK_DATA_STORE
2 OpenGL
关于Qt的支持,见参考资料[1]。
一开始时,使用qt-opensource-windows-x86-msvc2012_64-5.2.1.exe,编译失败。后来发现需要OpenGL的支持,改用qt-opensource-windows-x86-msvc2012_64_opengl-5.2.1.exe就好!
3 CMAKE_PREFIX_PATH
在参考资料[1]中提示,使用cmake对VTK进行配置时,需要添加CMAKE_PREFIX_PATH,由于不知其作用,并且觉没有这个必要,因此没有添加,结果编译阶段提示错误:
再次使用cmake配置时,也提示
看来,不添加是不行的了,因此按照参考资料[1]的方法,点击cmake界面坐上角的“Add Entry”按钮,添加CMAKE_PREFIX_PATH选项
注意:另外一个解决方法就是,将Qt库的路径添加到系统环境变量PATH中即可,见《VS2013编译安装VTK-6.2.0_支持Qt5.4.2》。
4 Qt5Gui_glu32_LIBRAYRY
解决了第3章的问题后,配置过程中又出现了新问题:
根据参考资料[2]的提示,需添加CMAKE_PREFIX_PATH(第3章中已经将此项的值设为Qt的安装路径)的值:
照着参考资料[2]的方法设置后,发现第4章的问题是解决了,但是第3章的问题又出现了!
于是将CMAKE_PREFIX_PATH的值同时设为第3章设置的值和C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x64,两者之间用分号隔开(就像环境变量Path中各个变量的分隔一样)。
其实根据参考资料[2]的提示,可以将第3章的值设置为环境变量Path的值即可,无需都在CMAKE_PREFIX_PATH中设置(未经测试)。
因此可以猜测CMAKE_PREFIX_PATH指定的是库的路径,相当于环境变量的作用。
参考资料
[1]VTK/Configure and Build
[2]QT5.2.1+VTK6.1 配置
[3]VTK/Tutorials/QtSetup
[4]CMake 2.8.11 Docs
[5]MSVC2012+QT5.2.1+VTK6.1+win8
[6]VTK/Building/Windows
[7]Solution to Failed to find "glu32" in "" with CMAKE_CXX_LIBRARY_ARCHITECTURE ""
CPU:i5-5200
1 ExternalData
关于VTK-6.2.0的编译安装,其实和VTK-5.10.1大致相同(VS2012编译安装VTK-5.10.1_支持python),主要区别在于外部数据的使用。下图是VTK官网上6.2.0版本的数据文件:
由上图可见,主要有2种数据文件VTKData和VTKLargeData,解压可见其目录结构为
----.ExternalData
|--MD5
|--README.rst
其中,MD5目录中大约包含2000个如下文件
经过查看发现,上面的并非什么数据文件。查看README.rst,其内容如下
.ExternalData ============= The VTK ``.ExternalData`` directory is an object store for the CMake ExternalData module that VTK uses to manage test input and baseline data.
这么说,编译之后是不是会将相关的数据文件保存到这目录中?经过测试发现,也不是!有可能是这些文件的使用方法不对。那么这些文件应该如何使用呢?
1.1 ExternalData_URL_TEMPLATES
使用cmake对VTK-6.2.0进行配置时,有一个ExternalData_URL_TEMPLATES项(参考资料[4]对ExternalData和ExternalData_URL_TEMPLATES都有说明),其说明如下图所示:
从《URL》可以了解到,上图的file:///var/bigharddrive/%(algo)/%(hash)是一种URL格式。由于我将VTKData.zip加压在目录目录中,其中的.ExternalData目录的结构在上面已经有说明。因此将ExternalData_URL_TEMPLATES的值设为:
file:///E:/VTK/VTKData-6.2.0/VTK-6.2.0/.ExternalData/%(algo)/%(hash)
本来以为在编译过程中,编译器(VS2012)会根据.ExternalData文件的内容来i通过网络获取真正的数据,后来我发现我错了!其实上述.ExternalData/MD5目录中的各个文件就是真正的数据,只不过都以其MD5值来命名而已!例如为文件00d368a21ef258f1658767a93419d0bc添加后缀.png,然后使用图片浏览器打开可见:
注意:并非每个文件都可以通过添加后缀.png然后用图片浏览器打开,只有那些内容为.png格式的文件才可以。可以通过使用二进制阅读器查看文件内容是否以.PNG开头,如果是就很大程度上表面它是一个png格式的图像文件。
因此,在配置VTK-6.2.0时,ExternalData_URL_TEMPLATES可以不设置,不用考虑数据的问题。
由于所有数据文件都是通过其MD5值来命名的,因此使用起来不方便,具体使用方法可见《VTKData-6.2.0的使用方法》。
1.2 VTK_DATA_STORE
2 OpenGL
关于Qt的支持,见参考资料[1]。
一开始时,使用qt-opensource-windows-x86-msvc2012_64-5.2.1.exe,编译失败。后来发现需要OpenGL的支持,改用qt-opensource-windows-x86-msvc2012_64_opengl-5.2.1.exe就好!
3 CMAKE_PREFIX_PATH
在参考资料[1]中提示,使用cmake对VTK进行配置时,需要添加CMAKE_PREFIX_PATH,由于不知其作用,并且觉没有这个必要,因此没有添加,结果编译阶段提示错误:
-- Configuring incomplete, errors occurred! 127> See also "D:/VTK/build_Qt/CMakeFiles/CMakeOutput.log". 127> See also "D:/VTK/build_Qt/CMakeFiles/CMakeError.log". 129> CMake Error at GUISupport/Qt/CMakeLists.txt:58 (find_package): 129> By not providing "FindQt5Widgets.cmake" in CMAKE_MODULE_PATH this project 129> has asked CMake to find a package configuration file provided by 129> "Qt5Widgets", but CMake did not find one. 129> 129> Could not find a package configuration file provided by "Qt5Widgets" with 129> any of the following names: 129> 129> Qt5WidgetsConfig.cmake 129> qt5widgets-config.cmake 129> 129> Add the installation prefix of "Qt5Widgets" to CMAKE_PREFIX_PATH or set 129> "Qt5Widgets_DIR" to a directory containing one of the above files. If 129> "Qt5Widgets" provides a separate development package or SDK, be sure it has 129> been installed.
再次使用cmake配置时,也提示
CMake Error at GUISupport/Qt/CMakeLists.txt:58 (find_package): By not providing "FindQt5Widgets.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Qt5Widgets", but CMake did not find one. Could not find a package configuration file provided by "Qt5Widgets" with any of the following names: Qt5WidgetsConfig.cmake qt5widgets-config.cmake Add the installation prefix of "Qt5Widgets" to CMAKE_PREFIX_PATH or set "Qt5Widgets_DIR" to a directory containing one of the above files. If "Qt5Widgets" provides a separate development package or SDK, be sure it has been installed.
看来,不添加是不行的了,因此按照参考资料[1]的方法,点击cmake界面坐上角的“Add Entry”按钮,添加CMAKE_PREFIX_PATH选项
注意:另外一个解决方法就是,将Qt库的路径添加到系统环境变量PATH中即可,见《VS2013编译安装VTK-6.2.0_支持Qt5.4.2》。
4 Qt5Gui_glu32_LIBRAYRY
解决了第3章的问题后,配置过程中又出现了新问题:
CMake Error at C:/Qt/Qt5.2.1/5.2.1/msvc2012_64_opengl/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:16 (message): Failed to find "glu32" in "" with CMAKE_CXX_LIBRARY_ARCHITECTURE "". Call Stack (most recent call first): C:/Qt/Qt5.2.1/5.2.1/msvc2012_64_opengl/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:52 (_qt5gui_find_extra_libs) C:/Qt/Qt5.2.1/5.2.1/msvc2012_64_opengl/lib/cmake/Qt5Gui/Qt5GuiConfig.cmake:152 (include) C:/Qt/Qt5.2.1/5.2.1/msvc2012_64_opengl/lib/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake:94 (find_package) GUISupport/Qt/CMakeLists.txt:58 (find_package)
根据参考资料[2]的提示,需添加CMAKE_PREFIX_PATH(第3章中已经将此项的值设为Qt的安装路径)的值:
C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x64
照着参考资料[2]的方法设置后,发现第4章的问题是解决了,但是第3章的问题又出现了!
于是将CMAKE_PREFIX_PATH的值同时设为第3章设置的值和C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x64,两者之间用分号隔开(就像环境变量Path中各个变量的分隔一样)。
其实根据参考资料[2]的提示,可以将第3章的值设置为环境变量Path的值即可,无需都在CMAKE_PREFIX_PATH中设置(未经测试)。
因此可以猜测CMAKE_PREFIX_PATH指定的是库的路径,相当于环境变量的作用。
参考资料
[1]VTK/Configure and Build
[2]QT5.2.1+VTK6.1 配置
[3]VTK/Tutorials/QtSetup
[4]CMake 2.8.11 Docs
[5]MSVC2012+QT5.2.1+VTK6.1+win8
[6]VTK/Building/Windows
[7]Solution to Failed to find "glu32" in "" with CMAKE_CXX_LIBRARY_ARCHITECTURE ""
相关文章推荐
- VS2012编译安装VTK-6.2.0_支持python
- VS2013编译安装VTK-6.2.0_支持Qt5.4.2
- VS2012编译安装ITK-4.7.2_支持Qt5.2.1
- MinGW编译安装VTK-5.10.1_支持Qt4.8.5
- VS2012编译安装VTK-5.10.1_支持python
- 交叉编译Qt5.2.1让其支持触摸屏多点触摸
- vs2012安装Qt+编译protobuf
- 在CENT OS 7.0 64位系统上源码编译安装OPENCV3.0以及CUDA7.0,支持CUDA开发,并集成QT5.5.0的开发环境
- 安装qt-opensource-windows-x86-msvc2010_opengl-5.2.1 无法编译
- win10环境下VTK7.1的编译和Qt调用VTK的详细教程二(VS2013编译支持Qt的VTK库)
- 交叉编译Qt5.2.1让其支持触摸屏多点触摸
- VTK-6.3.0编译(支持Qt编程)以及QVTKwidget插件安装
- centos7.3平台下 利用Cmake3.4.3源码编译安装 QT5.8.0 VTK7.1.1 ITK4.11.1
- VTK6.3结合QT5.4在VS2013上编译安装一些问题和解决
- 使用VS2012编译QT 5.2.1静态库
- VTK + QT + VS 编译安装配置
- Qt5.3.0的移植安装与测试(交叉编译,用于arm,支持tslib触摸屏)
- ITK、VTK、Qt安装与联合编译
- 使用VS2012编译QT 5.2.1静态库
- Linux 下编译并安装配置 Qt 4.53全过程