Ошибка компоновщика при использовании ITK в QT

Я пытаюсь использовать ITK в QT (новый для QT и ржавый в ITK). Наконец-то я смог определить пути включения и .lib, но я все еще не могу запустить свой код. Это простой считыватель dicom:

typedef signed short InputPixelType;
const unsigned int InputDimension = 2;

typedef itk::Image< InputPixelType, InputDimension > InputImageType;

typedef itk::ImageFileReader< InputImageType > ReaderType;
ReaderType::Pointer reader = ReaderType::New();

reader->SetFileName( "C:\Users\dmilford\Desktop\PvMRIm1" );

typedef itk::GDCMImageIO        ImageIOType;
ImageIOType::Pointer gdcmImageIO = ImageIOType::New();

Ошибка появляется в последней строке, и я получаю следующую ошибку

ITKIOGDCM-4.2.lib(itkGDCMImageIO.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall gdcm::Rescaler::SetPixelFormat(class gdcm::PixelFormat const &)" (__imp_?SetPixelFormat@Rescaler@gdcm@@QAEXABVPixelFormat@2@@Z) referenced in function "public: virtual void __thiscall itk::GDCMImageIO::Read(void *)" (?Read@GDCMImageIO@itk@@UAEXPAX@Z)

100 с лишним раз.

Кто-нибудь знает, как решить эту ошибку компоновщика, или знает, где я могу получить подсказку к ответу?


itk
person Dave    schedule 22.01.2013    source источник


Ответы (2)


Эта ошибка ссылки, вероятно, связана с несовместимостью скомпилированной версии между ITK и вашим компилятором Qt. Убедитесь, что ваш ITK собран, например, с помощью MSVC2010, а ваш компилятор Qt SDK по умолчанию такой же.

person colddie    schedule 23.01.2013
comment
Привет и спасибо за ответ. ITK построен с помощью MSVC2010, а QT работает с тем же компилятором. На самом деле я сделал ту же программу непосредственно с MSVC2010 с теми же путями включения и библиотекой, и я получил почти ту же ошибку: ITKIOGDCM-4.2.lib(itkGDCMImageIO.obj): предупреждение LNK4217. Любые другие мысли? - person Dave; 23.01.2013
comment
Если он прежний, снимите флажок ITK_USE_SYSTEM_GDCM; Или позже, вам может не понадобиться создавать статические библиотеки ITK. - person colddie; 24.01.2013

Попробуйте использовать CMake для создания файлов сборки. Это займет гораздо меньше времени, и все ваши проблемы исчезнут.

person Matt McCormick    schedule 02.02.2013
comment
Я согласен. Кроме того, что вы подразумеваете под ITK в QT? Вы имеете в виду просто использование ITK и Qt в одном проекте, нет? - person David Doria; 14.05.2013