cmake编译 itk,vtk, igstk 的MinGW版本
简单的库倒是可以直接在命令行环境下通过 cmake工具来生成makefile的文件。然而,在处理较为复杂的库时(如itk、vtk),传统的复杂库通常建议采用cmake-gui软件进行多次配置以确保正确性。
**一、itk的编译 **
仅允许CMAKE flags CMAKE_USE_PTHREADS和CMAKE_USE_WIN32_THREADS中的一个被启用。为了消除歧义,默认情况下这两个选项都不会被启用。建议在开始时仔细检查配置选项以避免后续构建过程中的问题。
在构建C++对象的过程中出现了问题,在包含文件e:/vitk/InsightToolkit...中发现了一个错误信息:存在冲突的声明'typedef void* itk::MutexType'以及之前声明为'typed struct pthread...* itk::MutexType'的问题。
另外, 我选择了 BUILD_SHARED_LIBS, 并对 CMAKE_BUILD_TYPE 进行了配置, 使其值设为 release; 同时设置了 CMAKE_INSTALL_PREFIX.
**
**
**二、vtk 的编译 **
未将编译信息进行保存。请确认是否需要勾选哪一个选项后继续操作。由于配置操作完成后,通常会生成新的变量,因此,请准备好可能需要反复进行配置的操作心理准备。此处仅罗列了一些可能出现的错误信息。
1、勾除掉 VTK_USE_VIDEO4WINDOWS,因为MinGW好像没有提供相关的头文件。
。。
参加资料:http://www.mitk.org/wiki/MinGW Instructions
**三、igstk的编译: **
Linking a CXX executable located at ../../bin/TrackerDataLogger.exe has been initiated.
A direct construction of the 'igstk::Transform' class is not permitted due to its abstract nature.
遇到这种情况时,解决方法是修改源代码:定位到文件路径为IGSTK-4.4/Utilities/SceneGraphVisualization/igstkSceneGraphNode.cxx
将第24行改为 m_ParentTransform = igstk::_transform{};
