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

Я получаю известную проблему 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

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


person konstantin_doncov    schedule 30.06.2016    source источник


Ответы (3)


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

  1. Перейдите в «Проекты» -> «Выполнить» -> «Выполнить среду» (показать подробности).
  2. Я бы не рекомендовал Удалить, вместо этого вам следует редактировать оба: DYLD_LIBRARY_PATH и DYLD_FRAMEWORK_PATH.
  3. Добавьте /System/Library/Frameworks/ImageIO.framework/Resources: в начало обоих путей (строка с разделителями-двоеточиями)
  4. Снова создайте проект - это исправит его навсегда
person hhony    schedule 30.06.2017
comment
Исправьте мою проблему, ТКС. Я думаю, что это проблема приоритета пути ссылки на системную библиотеку? Потому что я мог установить какую-то другую библиотеку вместе с другой версией libjpeg от brew :) - person Nezha; 02.11.2018

В моем случае эта ошибка произойдет только в 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 и нажмите Отменить. После этого ваш проект должен скомпилироваться, как и ожидалось.

person DanyAlejandro    schedule 05.01.2017

Этот вопрос содержит скриншот поиска настройки изменить:

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

В Qt Creator в левой части окна есть панель инструментов. «Добро пожаловать», «Редактировать», «Дизайн» и т. д. Один из вариантов — «Проекты». Выберите эту вкладку.

Вкладка

Оттуда слева есть новая область навигации. В разделе «Сборка и запуск» на рабочем столе есть раздел «Выполнить».

Раздел навигации по проектам

Это относится к настройкам запуска, и почти точно в центре этой страницы находятся настройки запуска в сером поле, а одним из элементов является флажок для отключения.

Параметры запуска

person Joseph Larson    schedule 20.05.2019