QtDCM编译失败的可能原因是什么?

时间:2019-01-30 11:41:47

标签: c++ qt build cmake dcmtk

QtDCM编译失败。我按照manualDCMTKITK的描述进行了所有工作,没有任何麻烦,但是当我尝试编译QtDCM时,它失败并出现错误:

2>QtDcmFindScu.cpp
2>D:\CPP\qtdcm\src\QtDcmFindScu.cpp(197): error C2259: 'QtDcmFindCallback': cannot instantiate abstract class
2>D:\CPP\qtdcm\src\QtDcmFindScu.cpp(197): note: due to following members:
2>D:\CPP\qtdcm\src\QtDcmFindScu.cpp(197): note: 'void DcmFindSCUCallback::callback(T_DIMSE_C_FindRQ *,int &,T_DIMSE_C_FindRSP *,DcmDataset *)': is abstract
2>D:\CPP\dcmtk-3.6.4\dcmnet\include\dcmtk/dcmnet/dfindscu.h(96): note: see declaration of 'DcmFindSCUCallback::callback'
2>D:\CPP\qtdcm\src\QtDcmFindScu.cpp(198): error C2664: 'OFCondition DcmFindSCU::performQuery(const char *,unsigned int,const char *,const char *,const char *,E_TransferSyntax,T_DIMSE_BlockingMode,int,Uint32,bool,bool,unsigned int,DcmFindSCUExtractMode,int,OFList<OFString> *,DcmFindSCUCallback *,OFList<OFString> *,const char *,const char *)': cannot convert argument 13 from 'bool' to 'DcmFindSCUExtractMode'
2>D:\CPP\qtdcm\src\QtDcmFindScu.cpp(203): note: Conversion to enumeration type requires an explicit cast (static_cast, C-style cast or function-style cast)
2>QtDcmMoveScu.cpp
2>D:\CPP\qtdcm\src\QtDcmMoveScu.cpp(373): error C2039: 'unlock': is not a member of 'GlobalDcmDataDictionary'
2>D:\CPP\dcmtk-3.6.4\dcmdata\include\dcmtk/dcmdata/dcdict.h(216): note: see declaration of 'GlobalDcmDataDictionary'
2>D:\CPP\qtdcm\src\QtDcmMoveScu.cpp(775): error C2660: 'DU_findSOPClassAndInstanceInDataSet': function does not take 4 arguments
2>D:\CPP\dcmtk-3.6.4\dcmnet\include\dcmtk/dcmnet/diutil.h(110): note: see declaration of 'DU_findSOPClassAndInstanceInDataSet'
2>D:\CPP\qtdcm\src\QtDcmMoveScu.cpp(965): error C2660: 'ASC_getAPTitles': function does not take 4 arguments
2>D:\CPP\dcmtk-3.6.4\dcmnet\include\dcmtk/dcmnet/assoc.h(328): note: see declaration of 'ASC_getAPTitles'

在库src中有麻烦吗? 配置CMake-GUI时,我是否可能会犯错?

我想编译QtDCM库。

1 个答案:

答案 0 :(得分:0)

似乎QtDCM项目自2011年11月以来就没有更新,因此我建议您也下载当时可用的DCMTK版本,即3.6.0 release