DCMTK的怪异库行为

Weird library behavior with DCMTK

本文关键字:DCMTK      更新时间:2023-10-16

我在软件部署方面遇到了一个奇怪的问题。

我已经编译了一个库,用于在后台使用DCMTK打开Dicom文件。还链接了Qt5和Boost库的一小部分。当我在我的系统上使用这个库时,一切都很好,就像它在团队中其他开发人员的系统上一样。

现在是部署。由于前端使用Python,我围绕库创建了一个包装器(BoostPython),而且一切都很好。然而,一旦我将库转移到另一个系统(与我用于开发的Mac OS X系统相同,即相同的Mac,相同的OS版本),事情就开始变得奇怪。

我可以打开DICOM集,除了一个:因此,库的DCMTK部分抱怨在打开各种DicomTag时找不到合理的值(.bad()提供true),事实上,大多数值都是0或相应的最大值。当同一个同事使用相同的系统从头开始编译库时,一切都很好。

为了创建库,我首先将我的源链接到DCMTK以创建一个状态库。然后将其链接到Boost Python模块,后者是一个共享库。

我希望有人知道我可以在哪里搜索,因为我在这里很迷路。

同一个库怎么会在同一个系统上产生不同的结果?不知怎么的,我认为编译步骤改变了一些东西,但我不知道从哪里看。

非常感谢您的帮助。

我的第一个猜测是:你确保DICOM数据字典真的加载了吗(如果没有内置到库中)?这可以通过调用dcmDataDict.isDictionaryLoaded()从程序中完成。

有关详细信息,请参阅文档:http://support.dcmtk.org/docs/file_datadict.html