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

What is the probable reason for QtDCM compilation fail?

本文关键字:是什么 编译 失败 QtDCM      更新时间:2023-10-16

QtDCM编译失败。我按照本手册中的描述做了所有操作,DCMTKITK编译没有任何问题,但是当我尝试编译QtDCM时,它失败并显示错误:

2>QtDcmFindScu.cpp
2>D:CPPqtdcmsrcQtDcmFindScu.cpp(197): error C2259: 'QtDcmFindCallback': cannot instantiate abstract class
2>D:CPPqtdcmsrcQtDcmFindScu.cpp(197): note: due to following members:
2>D:CPPqtdcmsrcQtDcmFindScu.cpp(197): note: 'void DcmFindSCUCallback::callback(T_DIMSE_C_FindRQ *,int &,T_DIMSE_C_FindRSP *,DcmDataset *)': is abstract
2>D:CPPdcmtk-3.6.4dcmnetincludedcmtk/dcmnet/dfindscu.h(96): note: see declaration of 'DcmFindSCUCallback::callback'
2>D:CPPqtdcmsrcQtDcmFindScu.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:CPPqtdcmsrcQtDcmFindScu.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:CPPqtdcmsrcQtDcmMoveScu.cpp(373): error C2039: 'unlock': is not a member of 'GlobalDcmDataDictionary'
2>D:CPPdcmtk-3.6.4dcmdataincludedcmtk/dcmdata/dcdict.h(216): note: see declaration of 'GlobalDcmDataDictionary'
2>D:CPPqtdcmsrcQtDcmMoveScu.cpp(775): error C2660: 'DU_findSOPClassAndInstanceInDataSet': function does not take 4 arguments
2>D:CPPdcmtk-3.6.4dcmnetincludedcmtk/dcmnet/diutil.h(110): note: see declaration of 'DU_findSOPClassAndInstanceInDataSet'
2>D:CPPqtdcmsrcQtDcmMoveScu.cpp(965): error C2660: 'ASC_getAPTitles': function does not take 4 arguments
2>D:CPPdcmtk-3.6.4dcmnetincludedcmtk/dcmnet/assoc.h(328): note: see declaration of 'ASC_getAPTitles'

是图书馆的麻烦吗?配置时是否有可能在CMake-GUI中出错?

我想编译QtDCM库。

QtDCM项目似乎自2011年11月以来就没有更新过,所以我建议大家也下载当时可用的DCMTK版本,即3.6.0版本。