【问题标题】:What is the probable reason for QtDCM compilation fail?QtDCM 编译失败的可能原因是什么?
【发布时间】:2019-06-23 16:32:06
【问题描述】:

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库。

【问题讨论】:

  • 欢迎来到 Stack Overflow!在这里,我们希望错误消息出现在问题帖子本身中,而不是链接。请。 edit您的问题并将错误日志粘贴到其中。您可以使用Ctrl+K{} 按钮格式化日志。

标签: c++ qt build cmake dcmtk


【解决方案1】:

QtDCM项目好像从2011年11月起就没有更新过,所以我建议你也下载当时可用的DCMTK版本,即3.6.0 release

【讨论】:

  • 确实,QtDCM 似乎切换到 DCMTK 3.6.2 (github.com/qtdcm/qtdcm/commit/0c365f6) 但您使用的是此 DICOM 工具包的更新版本?这可能是您上面的问题中列出的编译器错误的原因(因为 API 在版本之间发生了变化)。
猜你喜欢
  • 2012-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-08
相关资源
最近更新 更多