2013-01-22 57 views
0

我正在嘗試在QT中使用ITK(新增QT和ITK生鏽)我終於可以定義包含路徑和.lib,但我仍然無法運行我的代碼。這是一個簡單的DICOM讀者:在QT中使用ITK時出現鏈接器錯誤

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 &)" ([email protected]@[email protected]@[email protected]@@Z) referenced in function "public: virtual void __thiscall itk::GDCMImageIO::Read(void *)" ([email protected]@[email protected]@[email protected]) 

100倍多。

有誰知道如何解決這個鏈接器錯誤或知道我可能得到一個提示的答案?

回答

1

此鏈接錯誤可能來自ITK和您的Qt編譯器之間不一致的編譯版本。例如,確保您的ITK是使用MSVC2010構建的,而您的Qt SDK默認編譯器是相同的。

+0

嗨,謝謝你的回覆。 ITK使用MSVC2010構建,QT使用相同的編譯器運行。事實上,我直接與MSVC2010做了相同的程序,包含路徑和Lib,我得到了幾乎相同的錯誤:ITKIOGDCM-4.2.lib(itkGDCMImageIO.obj):警告LNK4217。任何其他想法? – Dave

+1

錯誤是關於gdcm還是其他人? – colddie

+1

如果是前者,請取消選中ITK_USE_SYSTEM_GDCM;或者稍後,您可能不需要構建ITK靜態庫。 – colddie

1

請嘗試使用CMake生成構建文件。這需要更少的時間,所有的問題都會消失。

+0

我同意。另外,您是什麼意思「QT內的ITK」?你的意思是在同一個項目中使用ITK和Qt,不是嗎? –

相關問題