Приложение Qt выдает & quot; dyld: символ не найден: __cg_jpeg_resync_to_restart & quot;

Меня хорошо знают dyld проблема на OS X.

Файл Qt.pro:

INCLUDEPATH += /usr/local/Cellar/libpng/1.6.23/include /usr/local/Cellar/jpeg/8d/include
LIBS += -L/usr/local/Cellar/libpng/1.6.23/lib -L/usr/local/Cellar/jpeg/8d/lib -ljpeg -lpng -ljpeg -lz

Во время выполнения мое приложение выдает:

dyld: символ не найден: __cg_jpeg_resync_to_restart Ссылка от:
/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
Ожидается в: /usr/local/Cellar/jpeg/8d/lib/libjpeg.8.dylib в
/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib

Я уже получил это раньше, и я исправил это с помощью этого ответ, но теперь это происходит снова, и этот совет не работает. Как я могу решить эту проблему?

5

Решение

Это только проблема времени выполнения QtCreator. Ответ Дани Алехандро (выше) частично правильный.

  1. Зайдите в Проекты -> Выполнить -> «Запустить среду» (показать детали)
  2. Я бы не рекомендовал Отозвать, скорее вы должны редактировать
    И то и другое: DYLD_LIBRARY_PATH а также DYLD_FRAMEWORK_PATH
  3. добавлять /System/Library/Frameworks/ImageIO.framework/Resources: в начало для обоих путей (строка, разделенная двоеточием)
  4. Снова постройте проект — это исправит это навсегда
7

Другие решения

В моем случае эта ошибка будет происходить только в Qt Creator на OSX ElCapitan (компиляция моих программ OpenCV с CLion или XCode в OSX будет работать без каких-либо действий), поэтому я не считаю правильным говорить, что изменение конфигурации системы является обязательным (как ваша ссылка предлагает).

Что я сделал, так это связал каждый библиотечный файл один за другим (связал файлы dylib один за другим с их полным путем). Таким образом, мне не нужно было связываться с моими файлами или делать какие-либо дополнительные настройки. Например:

LIBS += "/usr/local/lib/libopencv_core.dylib"LIBS += "/usr/local/lib/libopencv_highgui.dylib"

При условии, что такие файлы существуют.

Редактировать: Другой способ решить эту проблему (который еще раз доказывает, что это связано только с Qt Creator) — перейти на Проекты -> Выполнить -> «Запустить среду» (показать детали), Выбрать DYLD_LIBRARY_PATH и нажмите Отозвать. После этого ваш проект должен скомпилироваться, как и ожидалось.

6

По вопросам рекламы [email protected]