3

我下载了 GDCM 2.4.1 的源代码并使用 CMake 2.8.12.1 和 Visual Studio 2010 来构建库。我想在我的 C++ 项目中使用 GDCM。不幸的是,似乎在使用 VS 构建 GDCM 解决方案之后,bin 文件夹中只有 lib 文件,但没有典型的带有头文件的“包含”文件夹,这是我通常所期望的。因此,我无法在自己的项目中集成 GDCM 库(我尝试在自己的 CMakeproject 中使用 FindPackage(GDCM),但找不到头文件)。

我不想手动复制头文件或以 GDCM 的源目录为目标。有人知道帮助吗?

4

2 回答 2

2

我发现问题与VTK有关,我也在我的项目中使用了这个库。所以我需要在GDCM的CMake中启用“GDCM_USE_VTK”。当我尝试在 GDCM 解决方案中构建“INSTALL”子项目时,该选项会导致编译器错误:

cmake_install.cmake:31 (FILE) 处的 CMake 错误:文件 INSTALL 找不到“D:/Libs/VTK_5.6.0/BIN/bin/vtkCommon.dll”。

我查看了VTK目录,发现上面提到的路径不存在。相反,dll 位于:

D:\Libs\VTK_5.6.0\BIN\bin\Release\vtkCommon.dll 或 D:\Libs\VTK_5.6.0\BIN\bin\Debug\vtkCommon.dll

这意味着 GDCM 解决方案不知道 dll 位于特殊的调试或发布文件夹中。如果我禁用“GDCM_USE_VTK”,一切正常,所有文件都将复制到目标文件夹。但我确实需要VTK dll。有什么想法吗?

迈克尔

于 2014-01-15T12:41:48.313 回答
0

对于遇到同样问题的任何人,这是最终的解决方案。在 GDCM 解决方案中构建“ ALL_BUILD ”,然后通过以下方式将 GDCM 库集成到您的 CMakeLists.txt 中:

FIND_PACKAGE(GDCM REQUIRED)
    IF(GDCM_FOUND)
        INCLUDE(${GDCM_USE_FILE})
        SET(GDCM_LIBRARIES 
            gdcmcharls
            gdcmCommon
            gdcmDICT
            gdcmDSED
            gdcmexpat
            gdcmgetopt
            gdcmIOD
            gdcmjpeg12
            gdcmjpeg16
            gdcmjpeg8
            gdcmMEXD
            gdcmMSFF
            gdcmopenjpeg
            gdcmzlib
            socketxx
            vtkgdcm
            Rpcrt4)
    ELSE(GDCM_FOUND)
        MESSAGE(FATAL_ERROR "Cannot find GDCM, did you set GDCM_DIR?")
    ENDIF(GDCM_FOUND)
于 2014-01-16T12:12:46.470 回答