三战VS2019编译VTK7.1+Qt5.15.2

简介: 本文记录了作者在VS2019环境下编译VTK 7.1与Qt 5.15.2的历程,包括正确配置方法、遇到的编译错误以及解决过程。

1 编译结果

2 正确的配置

3 爬坑记录

3.1 未勾选QT,重头编译

C:\Qt\5.15.2\msvc2019_64\lib\cmake\Qt5

C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1/VTK-res

3.2 OPENGL2需要变为 OPENGL,重头编译

OPENGL2,则示例代码会出现如下缺库:

:-1: error: LNK1181: 无法打开输入文件“C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-release\lib\vtkGUISupportQtOpenGL-7.1.lib”
:-1: error: LNK1181: 无法打开输入文件“C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-release\lib\vtkproj4-7.1_d.lib”
:-1: error: LNK1181: 无法打开输入文件“C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-release\lib\vtkRenderingContextOpenGL-7.1.lib”
:-1: error: LNK1181: 无法打开输入文件“C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-release\lib\vtkRenderingGL2PS-7.1.lib”
:-1: error: LNK1181: 无法打开输入文件“C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-release\lib\vtkRenderingLabel-7.1.lib”
:-1: error: LNK1181: 无法打开输入文件“C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-release\lib\vtkRenderingLIC-7.1.lib”
:-1: error: LNK1181: 无法打开输入文件“C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-release\lib\vtkRenderingOpenGL-7.1.lib”

3.3 正确配置,编译有错误,不影响例子

xianyunxiaohe/VTK: vtk的学习 (github.com)

3.4 修改后的pro文件

#-------------------------------------------------
#
# Project created by QtCreator 2017-09-28T12:03:12
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = testQtVTK7
TEMPLATE = app

INCLUDEPATH += cn.thu.bean \
                cn.thu.ihm \
                cn.thu.lib\
                cn.thu.math\
                cn.thu.test


SOURCES += \
    main.cpp \
    cn.thu.test/TestVTK.cpp \
    cn.thu.ihm/widget.cpp

HEADERS += \
    cn.thu.test/TestVTK.h \
    cn.thu.ihm/widget.h


INCLUDEPATH += "C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\include\vtk-7.1"
INCLUDEPATH += "C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\include\vtk-7.1\vtkhdf5"

win32:LIBS += {
   mathJaxContainer[0]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkChartsCore-7.1.lib)
win32:LIBS += {
   mathJaxContainer[1]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkCommonComputationalGeometry-7.1.lib)
win32:LIBS += {
   mathJaxContainer[2]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkCommonDataModel-7.1.lib)
win32:LIBS += {
   mathJaxContainer[3]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkCommonMath-7.1.lib)
win32:LIBS += {
   mathJaxContainer[4]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkCommonSystem-7.1.lib)
win32:LIBS += {
   mathJaxContainer[5]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkDICOMParser-7.1.lib)
win32:LIBS += {
   mathJaxContainer[6]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkexoIIc-7.1.lib)
win32:LIBS += {
   mathJaxContainer[7]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkFiltersAMR-7.1.lib)
win32:LIBS += {
   mathJaxContainer[8]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkFiltersExtraction-7.1.lib)
win32:LIBS += {
   mathJaxContainer[9]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkFiltersGeneral-7.1.lib)
win32:LIBS += {
   mathJaxContainer[10]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkFiltersGeometry-7.1.lib)
win32:LIBS += {
   mathJaxContainer[11]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkFiltersHyperTree-7.1.lib)
win32:LIBS += {
   mathJaxContainer[12]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkFiltersModeling-7.1.lib)
win32:LIBS += {
   mathJaxContainer[13]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkFiltersParallelImaging-7.1.lib)
win32:LIBS += {
   mathJaxContainer[14]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkFiltersProgrammable-7.1.lib)
win32:LIBS += {
   mathJaxContainer[15]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkFiltersSMP-7.1.lib)
win32:LIBS += {
   mathJaxContainer[16]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkFiltersStatistics-7.1.lib)
win32:LIBS += {
   mathJaxContainer[17]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkFiltersVerdict-7.1.lib)
win32:LIBS += {
   mathJaxContainer[18]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkGeovisCore-7.1.lib)
win32:LIBS += {
   mathJaxContainer[19]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkGUISupportQt-7.1.lib)
win32:LIBS += {
   mathJaxContainer[20]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkGUISupportQtSQL-7.1.lib)
win32:LIBS += {
   mathJaxContainer[21]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkhdf5_hl-7.1.lib)
win32:LIBS += {
   mathJaxContainer[22]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkImagingCore-7.1.lib)
win32:LIBS += {
   mathJaxContainer[23]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkImagingGeneral-7.1.lib)
win32:LIBS += {
   mathJaxContainer[24]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkImagingMath-7.1.lib)
win32:LIBS += {
   mathJaxContainer[25]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkImagingSources-7.1.lib)
win32:LIBS += {
   mathJaxContainer[26]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkImagingStencil-7.1.lib)
win32:LIBS += {
   mathJaxContainer[27]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkInfovisLayout-7.1.lib)
win32:LIBS += {
   mathJaxContainer[28]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkInteractionStyle-7.1.lib)
win32:LIBS += {
   mathJaxContainer[29]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkIOAMR-7.1.lib)
win32:LIBS += {
   mathJaxContainer[30]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkIOEnSight-7.1.lib)
win32:LIBS += {
   mathJaxContainer[31]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkIOExport-7.1.lib)
win32:LIBS += {
   mathJaxContainer[32]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkIOImage-7.1.lib)
win32:LIBS += {
   mathJaxContainer[33]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkIOInfovis-7.1.lib)
win32:LIBS += {
   mathJaxContainer[34]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkIOLSDyna-7.1.lib)
win32:LIBS += {
   mathJaxContainer[35]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkIOMovie-7.1.lib)
win32:LIBS += {
   mathJaxContainer[36]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkIOParallel-7.1.lib)
win32:LIBS += {
   mathJaxContainer[37]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkIOPLY-7.1.lib)
win32:LIBS += {
   mathJaxContainer[38]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkIOTecplotTable-7.1.lib)
win32:LIBS += {
   mathJaxContainer[39]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkIOXML-7.1.lib)
win32:LIBS += {
   mathJaxContainer[40]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkjpeg-7.1.lib)
win32:LIBS += {
   mathJaxContainer[41]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtklibxml2-7.1.lib)
win32:LIBS += {
   mathJaxContainer[42]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkNetCDF-7.1.lib)
win32:LIBS += {
   mathJaxContainer[43]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkoggtheora-7.1.lib)
win32:LIBS += {
   mathJaxContainer[44]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkpng-7.1.lib)
win32:LIBS += {
   mathJaxContainer[45]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkRenderingAnnotation-7.1.lib)
#win32:LIBS += $$quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkRenderingContext2D-7.1.lib)
win32:LIBS += $$quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkRenderingContextOpenGL-7.1.lib)
win32:LIBS += {
   mathJaxContainer[47]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkRenderingFreeType-7.1.lib)
win32:LIBS += {
   mathJaxContainer[48]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkRenderingImage-7.1.lib)
#win32:LIBS += $$quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkRenderingLabel-7.1.lib)
win32:LIBS += $$quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkRenderingLIC-7.1.lib)
win32:LIBS += {
   mathJaxContainer[50]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkRenderingOpenGL-7.1.lib)
#win32:LIBS += $$quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkRenderingQt-7.1.lib)
win32:LIBS += $$quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkRenderingVolume-7.1.lib)
#win32:LIBS += $$quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkRenderingVolumeOpenGL-7.1.lib)
win32:LIBS += $$quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtksqlite-7.1.lib)
win32:LIBS += {
   mathJaxContainer[53]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtktiff-7.1.lib)
win32:LIBS += {
   mathJaxContainer[54]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkViewsContext2D-7.1.lib)
win32:LIBS += {
   mathJaxContainer[55]}quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkViewsInfovis-7.1.lib)
#win32:LIBS += $$quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkViewsQt-7.1.lib)
win32:LIBS += $$quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\lib\vtkzlib-7.1.lib)
win32:LIBS += -L$$quote(C:\Users\pgjgg\Desktop\C++_learn\VTK-7.1.1\VTK-debug\bin)

4 参考链接

(600条消息) 初步编译QT5.15.2+VS2019+VTK8.1.0_yantuguiguziPGJ的博客-CSDN博客
(600条消息) VS2019编译VTK-9.1.0+Qt5.15.2_yantuguiguziPGJ的博客-CSDN博客

(585条消息) QT中使用vtk(编译与demo)_xianyunxiaohe的博客-CSDN博客_qt编译vtk

(584条消息) VTK之基于Qt的VTK应用程序_阿兵-AI医疗的专栏-CSDN博客_qt vtk

相关文章
|
2月前
|
C++
vtkdicom0.8_vtk9.2_dcmtk3.6.7_qt6.2编译OK
本文介绍了如何编译整合VTK 9.2、DICOM 0.8、DCMTK 3.6.7和Qt 6.2的步骤,包括安装Qt、CMake配置以及确认相关路径和版本设置。
vtkdicom0.8_vtk9.2_dcmtk3.6.7_qt6.2编译OK
|
2月前
|
Unix 网络虚拟化 C++
VS2022+Qt5.14.2成功编译MITK2022.10
使用VS2022和Qt5.14.2成功编译MITK2022.10的过程,包括编译结果的截图、遇到的编译问题的解决方法、两个重要的注意事项(patch文件格式的修改和ITK-gitclone-lastrun文件的存在),以及参考链接。文中详细描述了如何解决编译过程中遇到的错误C2220和警告C4819,以及如何修改文件编码和尾行格式。
118 1
VS2022+Qt5.14.2成功编译MITK2022.10
|
2月前
编译QCefView+VS2019+QT5.15.2
本文介绍了如何编译QCefView项目,并在VS2019和Qt 5.15.2环境下集成,包括编译结果、要点、cmake部署Qt的方法和相关参考链接。
117 1
编译QCefView+VS2019+QT5.15.2
|
2月前
|
人工智能 C++
初步编译QT5.15.2+VS2019+VTK8.2.0
本文介绍了在VS2019中编译QT 5.15.2和VTK 8.2.0的过程,包括编译结果、cmake库编译配置和cmake应用配置脚本,以及推荐的参考链接。
110 4
|
2月前
|
计算机视觉
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
这篇文章记录了使用VS2019编译Qt6.2.4、DCMTK3.6.7、VTK9.2.2、ITK5.3和OpenCV4.6.0的过程,包括下载和编译步骤,并提供了遇到编译错误时的解决方案和参考链接。
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
|
2月前
|
C语言 C++ Windows
QT多插件通信框架CTK编译记录
本文记录了编译QT多插件通信框架CTK的过程,包括编译结果截图、部署配置、Log4Qt编译配置、参考链接和拓展资料。文中提供了详细的编译步骤和配置文件示例,以及相关的资源链接。
QT多插件通信框架CTK编译记录
|
2月前
|
机器学习/深度学习 Java 计算机视觉
opencv4.5.5+qt5.15.2+vtk9.1+mingw81_64编译记录
本文记录了使用mingw81_64编译OpenCV 4.5.5、Qt 5.15.2、VTK 9.1的详细过程,包括编译结果截图、编译步骤、遇到的问题及其解决方案,以及相关参考链接。文中还提到了如何编译boost源码为静态库,并提供了测试代码示例。
opencv4.5.5+qt5.15.2+vtk9.1+mingw81_64编译记录
|
2月前
|
C语言
BOOST1.75+QT5.15.2编译记录
本文记录了BOOST 1.75与Qt 5.15.2编译过程的详细步骤,包括编译结果截图、将boost源码编译为静态库的步骤,以及如何在Qt项目中使用BOOST库的测试代码。文章还提供了相关参考链接,以帮助解决在编译和使用过程中可能遇到的问题。
BOOST1.75+QT5.15.2编译记录
|
2月前
|
IDE 开发工具 C++
qt creator + vs2019编译记录
本文记录了作者在使用qt creator和vs2019编译项目时遇到的困难和解决方案,包括编译环境设置、qt creator编译脚本的成功案例、不带Ninja的编译脚本问题、错误示范以及相关参考链接。
qt creator + vs2019编译记录
|
4月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
176 1
Qt(C++)开发一款图片防盗用水印制作小工具