0

对于在 C++ 程序中使用 SimpleITK 的任何人来说,这是一个问题。

我已经下载了 SimpleITK 代码,并.sln按照 SimpleITK 指令(Superbuild)使用 CMake 生成了 VS2008 文件。

SimpleITK-build\lib\Debug我得到一些 SimpleITK 库,例如:SimpleITKCommon-0.8.lib. 在SimpleITK-build\ITK-build\lib\Debug我得到许多 ITK 库,例如:ITKCommon-4.5.lib

在代码中,我使用:#include "SimpleITK.h"

问题:我要链接到什么?

我可以一一添加到linker/input/additional dependencies所有 SimpleITK 库中。然后我得到unresolved external symbols了,因为我没有链接到 ITK 库(其中有 50 个)。我不敢相信我需要向其他依赖项添加 50-60 个库。

我在这里想念什么?找不到任何有关从 C++ 链接到 SimpleITK 的文档。

谢谢和欢呼

阿里

4

1 回答 1

3

推荐使用 CMake。如果您要手动添加所有这些库,您是正确的。

来自 SimpleITK/Examples/CMakeLists.txt 文件的这里是如何使用 CMake 创建项目:

find_package(SimpleITK REQUIRED)
include(${SimpleITK_USE_FILE})

# Add compiler flags needed to use SimpleITK.
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SimpleITK_REQUIRED_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SimpleITK_REQUIRED_CXX_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${SimpleITK_REQUIRED_LINK_FLAGS}")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${SimpleITK_REQUIRED_LINK_FLAGS}")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${SimpleITK_REQUIRED_LINK_FLAGS}")

add_executable ( SimpleGaussian SimpleGaussian.cxx )
target_link_libraries ( SimpleGaussian ${SimpleITK_LIBRARIES} )
于 2014-09-19T13:29:01.413 回答