У меня странная проблема с развертыванием моего программного обеспечения.
Я скомпилировал библиотеку для открытия файлов Dicom с DCMTK в бэкэнде. Также связаны в Qt5 и крошечная часть Boost libs.
Когда я использую библиотеку в моей Системе, все просто отлично работает, как и в системах других разработчиков в команде.
Теперь дело доходит до развертывания. Поскольку во внешнем интерфейсе используется Python, я создал оболочку (Boost Python) вокруг библиотеки, и снова все работает просто отлично. Однако, как только я перенесу библиотеку в другую систему (ту же систему Mac OS X, которую я использую для разработки, т.е. тот же Mac, ту же версию ОС), вещи начинают становиться странными.
Я могу открыть набор DICOM, кроме одного: тем самым часть библиотеки DCMTK жалуется, что не может найти разумные значения (.bad()
обеспечивает true
) при открытии различных DicomTags и действительно, большинство значений равны 0 или соответствующему максимальному значению.
Когда тот же коллега с той же системой компилирует библиотеку с нуля, все работает просто отлично.
Чтобы создать библиотеку, я сначала связываю свои источники с DCMTK создать государственную библиотеку. Затем он связывается с Boost Python Module, который является общей библиотекой.
Я надеюсь, что у кого-то есть идея, где я мог бы искать, так как я совершенно потерян
Как может получиться, что одна и та же библиотека дает разные результаты в одной и той же системе? Каким-то образом я думаю, что этап компиляции что-то меняет, но я не знаю, где искать.
Любая помощь очень ценится.
Мое первое предположение было бы: вы удостоверились, что словарь данных DICOM действительно загружен (если не встроен в библиотеку)? Это можно сделать из вашей программы, вызвав dcmDataDict.isDictionaryLoaded ().
Подробности смотрите в документации: http://support.dcmtk.org/docs/file_datadict.html
Других решений пока нет …