Я скачал исходный код GDCM 2.4.1 и использовал CMake 2.8.12.1 и Visual Studio 2010 для сборки библиотек. Я хочу использовать GDCM в моем проекте C ++.
К сожалению, кажется, что после построения решения GDCM с VS в папке bin есть только lib-файлы, но нет типичной папки include с файлами заголовков, что я обычно ожидаю. Таким образом, я не могу интегрировать библиотеки GDCM в свой собственный проект (я пытался использовать FindPackage (GDCM) в своем собственном CMakeproject, но файлы заголовков не могут быть найдены).
Я не хочу копировать заголовочные файлы вручную или предназначаться для исходного каталога GDCM.
Кто-нибудь знает помощь?
Я обнаружил, что проблема связана с VTK, я также использую эту библиотеку в своем проекте. Поэтому мне нужно включить «GDCM_USE_VTK» в CMake GDCM. Эта опция приводит к ошибке компилятора, когда я пытаюсь построить подпроект «INSTALL» в решении GDCM:
CMake Ошибка в cmake_install.cmake: 31 (ФАЙЛ): файл 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.
Какие-нибудь мысли?
Майкл
Для тех, кто когда-либо касается одной и той же проблемы, вот окончательное решение. Строй «ALL_BUILD«В решении GDCM интегрируйте библиотеки 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)