Qt +VTK+Cmake 컴파일 및 환경 구성(첫 번째 피트)

VTK 다운로드 주소: https://vtk.org/download/

Cmake 다운로드 주소: https://cmake.org/download/

버전 대응 측면에서 프로젝트에 버전이 필요하지 않은 경우 걱정하지 마세요. 그냥 제가 임의로 만들어본 것인데, 최신 버전의 VTK를 선택하고, 뒤에 있는 다른 라이브러리가 높은 버전을 지원하지 않으면 낮은 버전을 사용하겠습니다. 다음은 컴파일 과정에 대한 소개입니다.

 최신 버전은 9.3.0입니다.

버전 8.2.0 다운로드

Source 아래에서 .zip 버전을 선택합니다 . tar.gz 는 Linux용입니다. Cmake는 .msi 접미사를 다운로드해야 합니다 . 여기서는 64비트 win64를 선택하고 다운로드한 후 기본값을 두 번 클릭하고 다음 단계에서 설치합니다. 여기서는 직접 컴파일해야 하므로  VTK-8.2.0.zip 파일을 다운로드합니다.

Cmake 설치

Qt의 gcc 및 g++ 컴파일러를 선택하는 경우 내 블로그를 참조할 수 있습니다.

Cmake: 구성 프로세스 오류, 프로젝트 파일이 유효하지 않을 수 있음 Qt의 opencv 컴파일 경험. _Vertira의 블로그 - CSDN 블로그

VTK 컴파일과 opencv 컴파일에는 큰 차이가 없습니다.

이 오류가 발생하면 내 연결을 참조하세요.

오류: 'std::_hypot'은 std::hypot;_Vertira의 블로그-CSDN 블로그를 사용하여 선언되지 않았습니다.

 오류가 없으면 위의 연결을 무시하십시오.

 

첫 번째 구성은 컴퓨터의 프로세서 성능에 따라 꽤 오랜 시간(5~10분)이 소요됩니다. 이는 처음일 뿐이며 매개변수 구성을 계속 변경해야 하기 때문에 이후에도 여러 번 구성할 예정입니다. .첫 번째 구성을 수행하면 아래 그림과 같이 빨간색 부분이 표시됩니다. 걱정하지 마십시오. 여기서 수정해야 할 세 곳은 다음과 같습니다.

  1. BUILD_EXAMPLES: 이해하고 배우는 데 도움이 되는 몇 가지 vtk 공식 예제를 생성합니다. 물론 선택하지 않아도 괜찮습니다.
  2. CMAKE_INSTALL_PREFIX: 나중에 vtk를 사용할 때 일부 동적 라이브러리 dll, 바이너리 라이브러리 lib 및 vtk의 일부 헤더 파일을 저장합니다. 그림에서 이 항목의 위치는 방금 생성된 vtk-pefix 폴더의 경로로 변경되었습니다(폴더의 경로 이름을 vtk-install로 변경할 수도 있습니다).
  3. VTK_Group_Qt: 여기서는 Qt에서 vtk를 사용해야 해서 이 항목을 선택했습니다.

 컴파일 오류:::::? ? ? ? ? ? ? ?

 

CMake Error at GUISupport/Qt/CMakeLists.txt:71 (find_package):
  By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Qt5", but
  CMake did not find one.

  Could not find a package configuration file provided by "Qt5" with any of
  the following names:

    Qt5Config.cmake
    qt5-config.cmake

  Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"
  to a directory containing one of the above files.  If "Qt5" provides a
  separate development package or SDK, be sure it has been installed.

 

GUISupport/Qt/CMakeLists.txt:71(find_package)의 CMake 오류:
CMAKE_MODULE_PATH에 "FindQt5.cmake"를 제공하지 않음으로써 이 프로젝트는
CMake에게 "Qt5"에서 제공한 패키지 구성 파일을 찾도록 요청했지만
CMake는 이를 찾지 못했습니다. 다음 이름

으로 "Qt5"에서 제공한 패키지 구성 파일을 찾을 수 없습니다 : Qt5Config.cmake qt5-config.cmake 설치 접두사 "Qt5"를 CMAKE_PREFIX_PATH에 추가하거나 "Qt5_DIR"을 위 중 하나를 포함하는 디렉터리에 설정합니다 파일. "Qt5"가 별도의 개발 패키지나 SDK를 제공하는 경우 반드시 설치되어 있는지 확인하세요.








 

이 오류를 온라인으로 확인해 보니 일부 파일의 경로가 설정되지 않은 것으로 나타났습니다.

그런 다음 cmake 인터페이스의 추가 항목에서 위의 경로를 비트 단위로 추가합니다.

 

 

 결과적으로 이런 문제가 발생하는데,

CMake Warning (dev) at E:/Qt5/VTK/build/CMakeTmp/VTK_UNDEFINED_SYMBOLS_ALLOWED/CMakeLists.txt:2 (project):
  cmake_minimum_required() should be called prior to this top-level project()
  call.  Please see the cmake-commands(7) manual for usage documentation of
  both commands.
This warning is for project developers.  Use -Wno-dev to suppress it.

Performing Test VTK_UNDEFINED_SYMBOLS_ALLOWED - Failed
Group StandAlone modules: vtkChartsCore;vtkCommonComputationalGeometry;vtkCommonCore;vtkCommonDataModel;vtkCommonExecutionModel;vtkCommonMisc;vtkCommonSystem;vtkCommonTransforms;vtkDomainsChemistry;vtkFiltersAMR;vtkFiltersCore;vtkFiltersExtraction;vtkFiltersFlowPaths;vtkFiltersGeneral;vtkFiltersGeneric;vtkFiltersGeometry;vtkFiltersHybrid;vtkFiltersHyperTree;vtkFiltersImaging;vtkFiltersModeling;vtkFiltersParallel;vtkFiltersParallelImaging;vtkFiltersPoints;vtkFiltersProgrammable;vtkFiltersSMP;vtkFiltersSelection;vtkFiltersSources;vtkFiltersStatistics;vtkFiltersTexture;vtkFiltersTopology;vtkFiltersVerdict;vtkIOAMR;vtkIOAsynchronous;vtkIOCityGML;vtkIOCore;vtkIOEnSight;vtkIOExodus;vtkIOGeometry;vtkIOImage;vtkIOImport;vtkIOInfovis;vtkIOLSDyna;vtkIOLegacy;vtkIOMINC;vtkIOMovie;vtkIONetCDF;vtkIOPLY;vtkIOParallel;vtkIOParallelXML;vtkIOSQL;vtkIOSegY;vtkIOTecplotTable;vtkIOVeraOut;vtkIOVideo;vtkIOXML;vtkIOXMLParser;vtkImagingColor;vtkImagingCore;vtkImagingFourier;vtkImagingGeneral;vtkImagingHybrid;vtkImagingMath;vtkImagingMorphological;vtkImagingSources;vtkImagingStatistics;vtkImagingStencil;vtkInfovisCore;vtkInfovisLayout;vtkParallelCore
Group MPI modules: vtkDomainsParallelChemistry;vtkFiltersParallelGeometry;vtkFiltersParallelMPI;vtkFiltersParallelVerdict;vtkIOMPIImage;vtkIOMPIParallel;vtkIOParallelNetCDF;vtkParallelMPI
Group Imaging modules: vtkFiltersImaging;vtkImagingColor;vtkImagingFourier;vtkImagingGeneral;vtkImagingHybrid;vtkImagingMath;vtkImagingMorphological;vtkImagingSources;vtkImagingStatistics;vtkImagingStencil;vtkInteractionImage;vtkRenderingImage
Group Qt modules: vtkGUISupportQt;vtkGUISupportQtSQL;vtkRenderingQt;vtkViewsQt
Group Rendering modules: vtkGeovisCore;vtkIOExport;vtkIOExportPDF;vtkInteractionImage;vtkInteractionStyle;vtkInteractionWidgets;vtkRenderingAnnotation;vtkRenderingContext2D;vtkRenderingCore;vtkRenderingFreeType;vtkRenderingImage;vtkRenderingLOD;vtkRenderingLabel;vtkRenderingVolume;vtkViewsContext2D;vtkViewsCore;vtkViewsInfovis
Group Tk modules: vtkRenderingTk
Group Views modules: vtkViewsContext2D;vtkViewsGeovis
Group Web modules: vtkWebCore;vtkWebPython;vtkWebGLExporter
Backend OpenGL2 modules: vtkDomainsChemistryOpenGL2;vtkIOExportOpenGL2;vtkImagingOpenGL2;vtkRenderingContextOpenGL2;vtkRenderingGL2PSOpenGL2;vtkRenderingLICOpenGL2;vtkRenderingOpenGL2;vtkRenderingOpenVR;vtkRenderingVolumeOpenGL2
Enabling modules for OpenGL2.
CMake Deprecation Warning at Utilities/KWIML/vtkkwiml/CMakeLists.txt:20 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at Utilities/KWSys/vtksys/CMakeLists.txt:84 (CMAKE_MINIMUM_REQUIRED):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at ThirdParty/doubleconversion/vtkdoubleconversion/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at ThirdParty/verdict/vtkverdict/CMakeLists.txt:2 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Warning (dev) at E:/Qt5/VTK/build/Examples/Build/vtkLocal/CMakeTmp/VTK_UNDEFINED_SYMBOLS_ALLOWED/CMakeLists.txt:2 (project):
  cmake_minimum_required() should be called prior to this top-level project()
  call.  Please see the cmake-commands(7) manual for usage documentation of
  both commands.
This warning is for project developers.  Use -Wno-dev to suppress it.

Performing Test VTK_UNDEFINED_SYMBOLS_ALLOWED - Failed
Configuring done (51.0s)

VTK_UNDEFINED_SYMBOLS_ALLOWED 테스트 수행 - 실패

오류가 보고되지 않았지만 실행이 실패합니까? ? ? ? ? ? ? ? ? 이유는 무엇입니까?

제 컴퓨터는 비교적 오래된 제품이고, 그래픽 카드도 Nvidia GF 525M인데, 비교적 오래됐지만 그렇지 않아야 합니다.

삭제하고 다시 컴파일하세요. 시도 해봐

추천

출처blog.csdn.net/Vertira/article/details/132637283