Как собрать библиотеки DCMTK 3.6.1 для iOS?

Я следовал инструкциям руссов, найденным на http://forum.dcmtk.org/viewtopic.php?f=3&t=3047&start=15

Со свежей копией его ветки git "afab" я построил проект Xcode для архитектуры x86 с помощью командной строки:

cmake -DIOS_PLATFORM=SIMULATOR64 -G Xcode ../dcmtk.public

или для дуги руки с:

cmake -DIOS_PLATFORM=OS -G Xcode ../dcmtk.public

Однако мой проект Xcode не может быть успешно построен, по крайней мере, из-за следующих ошибок: List ошибок Xcode в файле ofchrenc.cc (например, "Нет класса с именем" Реализация в OFCharacterEncoding ")

Компиляция с помощью make-файлов Unix в моем случае дает те же ошибки:

Сканирование зависимостей target ofstd

0% Создание объекта CXX из std / libsrc / CMakeFiles / ofstd.dir / ofchrenc.cc.o

dcmtk.public / ofstd / libsrc / ofchrenc.cc: 518: 28: ошибка: нет класса с именем «Реализация» в классе OFCharacterEncoding OFCharacterEncoding :: реализация {};

dcmtk.public / ofstd / libsrc / ofchrenc.cc: 556: 31: ошибка: внешнее определение getLocaleEncoding не соответствует никакому объявлению в OFCharacterEncoding OFString OFCharacterEncoding :: getLocaleEncoding ()

/usr/local/include/dcmtk/ofstd/ofchrenc.h:97:21: примечание: объявление члена не совпадает, потому что оно квалифицировано как const const OFString & getLocaleEncoding () const;

[...] dcmtk.public / ofstd / libsrc / ofchrenc.cc: 644: 34: ошибка: внешнее определение 'setConversionFlags' не соответствует никакому объявлению в 'OFCharacterEncoding' OFCondition OFCharacterEncoding :: setConversionFlags (const unsigned флаги)

Сгенерировано 19 ошибок.

сделать 2: ofstd / libsrc / CMakeFiles / ofstd.dir / ofchrenc.cc.o Ошибка 1

сделать 1: ofstd / libsrc / CMakeFiles / ofstd.dir / all Ошибка 2

make: [all] Ошибка 2

Я не понимаю, что не так в моей конфигурации:

  • MacOs Sierra 10.12.2

  • Xcode 8.2

  • CMake 3.7.1 (у меня была такая же проблема ранее с версией 3.5.2)

  • GNU Make 3.81 (для компиляции make-файлов Unix)

  • Apple LLVM версии 8.0.0.8000042

  • Дарвиновская версия хоста: 16.3.0

  • Сборка для минимальной версии iOS: 10.2 (версия SDK: 10.2)


person Nicolas C.    schedule 03.01.2017    source источник


Ответы (1)


Я не уверен насчет первого сообщения об ошибке, но

/usr/local/include/dcmtk/ofstd/ofchrenc.h:97:21: примечание: объявление члена не соответствует, потому что оно квалифицировано как const const OFString & getLocaleEncoding () const;

похоже, это указывает на то, что вы смешиваете старую версию «ofchrenc.h» (хранящуюся в «/ usr / local / ...») с более новой версией «ofchrenc.cc» (хранящейся в вашем рабочем каталоге).

person J. Riesmeier    schedule 03.01.2017
comment
Действительно хорошо найдено! Похоже, у меня давным-давно была установлена ​​старая версия DCMTK с brew ... Я удалил ее, и теперь она работает! Еще раз спасибо за вашу помощь, я не понимаю, как я это пропустил. - person Nicolas C.; 04.01.2017
comment
Я рад, что смог помочь. Поскольку я являюсь одним из основных разработчиков DCMTK, мне было несложно определить причину ошибки (ошибок). Однако лично у меня нет опыта компиляции DCMTK для iOS (или любой другой ОС Apple). - person J. Riesmeier; 04.01.2017