使用CMake和ITK错误进行编译

时间:2016-12-15 01:02:46

标签: c++ compilation cmake environment-variables itk

我尝试使用CMake和ITK从here编译一些代码,但我遇到了错误。

在CMake中,我选择/ utilities / ITKImageSeriesToVolume中的源文件夹和/ utilities / ITKImageSeriesToVolume / build中的build文件夹。然而,这给了我一个错误:

CMake Error at D:/Apps/InsightToolkit/ITK/ITKConfig.cmake:48 (include):
include could not find load file:

D:/Apps/InsightToolkit/Build/ITKTargets.cmake
Call Stack (most recent call first):
CMakeLists.txt:42 (find_package)


CMake Error at D:/Apps/InsightToolkit/Source/CMake/ITKModuleAPI.cmake:56 (message):
No such module: "ITKDoubleConversion"
Call Stack (most recent call first):
D:/Apps/InsightToolkit/Source/CMake/ITKModuleAPI.cmake:26 (itk_module_load)
D:/Apps/InsightToolkit/Source/CMake/ITKModuleAPI.cmake:84 (_itk_module_config_recurse)
D:/Apps/InsightToolkit/ITK/ITKConfig.cmake:68 (itk_module_config)
CMakeLists.txt:42 (find_package)

我试图设置一个CMAKE_PREFIX_PATH环境变量,该变量指向包含ITKConfig.cmake的ITK的根文件夹,但是会得到相同的错误。

希望有人可以提前帮助,谢谢。

编辑:将ITK_DIR设置为根ITK文件夹后,我得到:

Arrays.equals(char[], char[])

2 个答案:

答案 0 :(得分:0)

它有一个简单的修复,如ERROR中所述 "添加" ITK"的安装前缀到CMAKE_PREFIX_PATH或设置" ITK_DIR" 到包含上述文件之一的目录。如果" ITK"提供了一个 单独的开发包或SDK,确保它已经安装。"

确保您的CMAKE_PREFIX_PATH和ITK指向您的ITK构建目录。这假设你已经使用Cmake建立了ITK至少一次。

步骤 1)创建ITK源文件夹。

2)创建ITK构建文件夹。

3)运行CMake并选择source和build文件夹。

4)选择相应的编译器,如果有任何编译器问题,请参阅此讨论。

5)配置并生成cmake。

6)使用相应的IDE打开构建文件夹中的构建文件(如果使用visual studio编译器,则使用.sln文件)。

7)在visual studio上构建一次。

8)现在,您的新项目使用相同的步骤,并将CMAKE_PREFIX_PATH和ITK指向您的ITK构建目录。

一切都应该有效。 祝你好运!!!

答案 1 :(得分:-1)

您的ITK构建似乎部分被打破。你能尝试重建吗?如果这没有帮助,请查看ITK_USE_SYSTEM_DOUBLECONVERSION是否为ON。这意味着不要构建ITK附带的 DoubleConversion 库,而是使用已经存在于系统中的库。如果它不存在,则表示您有问题。

此外,除非ITK_BUILD_DEFAULT_MODULES为ON,否则您必须专门打开要编译的每个模块或模块组。在这种情况下,请打开ITKDoubleConversion以及该代码所需的任何其他模块。