有没有办法一次指定CMakeList中的所有GDCM库?

时间:2014-01-09 08:33:53

标签: visual-studio-2012 cmake gdcm

这可能是一个非常基本的问题,但我无法找到答案。

我刚刚在我的Windows 7工作站上安装了GDCM库,并使用CMake进行了编译,然后使用VS2012 Express构建了生成的解决方案。 但是,我不确定要在CMakeLists中包含哪些GDCM库,我想知道是否有更简单的方法可以同时指定所有库。(如VTK的VTK_LIBRARIES)。我尝试了GDCM_LIBRARIES并且没有返回值,GDCM也没有。 具体来说,我希望替换:

  

TARGET_LINK_LIBRARIES(TestvtkGDCMImageReader vtkgdcm gdcmMSFF gdcmDSED gdcm2vtk)

更通用的东西。

1 个答案:

答案 0 :(得分:2)

通常,GDCM_LIBRARIES将由您在CMake中查找GDCM包后包含的use文件定义;但是,它目前尚未确定。您可以通过设置包含所有GDCM库名称的变量来自行完成。

例如,通过查看2.4.0 Windows二进制发行版中包含的库,我可以在CMakeLists.txt中执行此操作:

set( GDCM_LIBRARIES
    gdcmDICT gdcmDSED gdcmIOD gdcmMEXD gdcmMSFF gdcmcharls gdcmexpat gdcmgetopt
    gdcmjpeg12 gdcmjpeg16 gdcmjpeg8 gdcmopenjpeg gdcmzlib
# since you built the vtk component, you might also include them here
    vtkgdcm gdcm2vtk
)

# then you can replace your line with this
target_link_libraries( TestvtkGDCMImageReader ${GDCM_LIBRARIES} )

查看您安装的GDCM dll的安装位置,以确保您获得了所有库。