2016-07-18 11 views
1

Я попытался внедрить библиотеку Imebra в качестве средства просмотра файлов Dicom в приложении iOS. Но когда я построил библиотеку Imebra через «cmake --build». в командной строке после «Cmake установки ...», ошибки вышли в следующийiOS Dicom Library Imebra Compiling Error

Undefined symbols for architecture x86_64: "_iconv", referenced from: imebra::charsetConversionIconv::myIconv(void*, char*, unsigned long) const in charsetConversionIconvImpl.cpp.o "_iconv_close", referenced from: imebra::charsetConversionIconv::~charsetConversionIconv() in charsetConversionIconvImpl.cpp.o "_iconv_open", referenced from: imebra::charsetConversionIconv::charsetConversionIconv(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in charsetConversionIconvImpl.cpp.o

Может кто-то помочь мне с этим?

+0

У Mac уже есть библиотека libiconv, и я переустанавливаю ее с помощью Brew, но ошибка снова появилась. – YLei

+0

эта сборка терпит неудачу и для меня. Я думаю, что путь к мачте libiconv будет добавлен в проект. –

+0

@johnelemans Спасибо за ваш ответ. Вы вложили библиотеку Imebra в свой APP? – YLei

ответ

0

Файл cmake не определяет библиотеку iconv, когда он выбирает ее по умолчанию. Попробуйте запустить CMake явного указания Iconv:

Cmake -DIMEBRA_CHARSET_CONVERSION=ICONV 

UPDATE

ошибка в CMakeLists.txt была исправлена ​​в версии 4.0.5.3 библиотеки.

В принципе, хотя явная ссылка на iconv на Linux приводит к сбою сборки, на OS-X действует обратное. Резолюция заключалась в явной увязке с iconv при запуске сборки на OS-X.

+0

Привет, Паоло, спасибо за ответ. После запуска cmake -DIMEBRA_CHARSET_CONVERSION = ICONV ../imebra_4_0_0_4/library И cmake --build. У меня по-прежнему такая же ошибка. Я его скомпилировал? Many Thanks – YLei

+0

http://stackoverflow.com/questions/4546484/iconv-routines-get-translated-to-libiconv-names-and-fail-to-link-on-os-x может решить проблему –