qt mac osx 10.8 dyld: библиотека не загружена, изображение не найдено

У меня есть приложение, которое я создавал и нормально работал под OSX Snow Leopard с Qt 4.7.4, но этот MacBook умер. Сейчас я настраиваю новый macbook под управлением mountain lion (10.8.2) и Qt 4.8.3. Я могу создать свое приложение, но когда я пытаюсь запустить его из Qt Creator 2.6.0, я получаю эту ошибку времени выполнения:

dyld: Library not loaded: ../lib/libicudata.46.1.dylib
  Referenced from: /Users/david/dev/svn/map_creator/karte-build-Desktop-Debug/debug/MapCreator.app/Contents/MacOS/MapCreator
  Reason: image not found
The program has unexpectedly finished.

Я получаю аналогичную ошибку при запуске из Finder.

otool дает мне:

Davids-MacBook-Pro:map_creator david$ otool -L karte-build-Desktop-Debug/debug/MapCreator.app/Contents/MacOS/MapCreator 
karte-build-Desktop-Debug/debug/MapCreator.app/Contents/MacOS/MapCreator:
    ../lib/libicudata.46.1.dylib (compatibility version 46.0.0, current version 46.1.0)
    libicui18n.46.dylib (compatibility version 46.0.0, current version 46.1.0)
    libicuuc.46.dylib (compatibility version 46.0.0, current version 46.1.0)
    /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 945.11.0)
    /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 55179.1.0)
    /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1187.34.0)
    /Users/david/dev/qt483/lib/QtSvg_fmosoft.framework/Versions/4/QtSvg_fmosoft (compatibility version 4.8.0, current version 4.8.3)
    /Users/david/dev/qt483/lib/QtGui_fmosoft.framework/Versions/4/QtGui_fmosoft (compatibility version 4.8.0, current version 4.8.3)
    /Users/david/dev/qt483/lib/QtCore_fmosoft.framework/Versions/4/QtCore_fmosoft (compatibility version 4.8.0, current version 4.8.3)
    /Users/david/dev/qt483/lib/QtXmlPatterns_fmosoft.framework/Versions/4/QtXmlPatterns_fmosoft (compatibility version 4.8.0, current version 4.8.3)
    /Users/david/dev/qt483/lib/QtNetwork_fmosoft.framework/Versions/4/QtNetwork_fmosoft (compatibility version 4.8.0, current version 4.8.3)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
    /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1669.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
    /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 744.12.0)

Что-то изменилось со снежного барса на горный лев или с Qt 4.7.4 на 4.8.3, что вызывает эту проблему? Или, может быть, я пропустил шаг по настройке всего на моем новом MacBook? Я все еще учусь - на самом деле просто новичок в Qt и Mac, пытаюсь поддерживать этот проект после ухода основного разработчика.

Спасибо Дэвид


person David Burson    schedule 28.11.2012    source источник


Ответы (3)


В настройках вашего проекта Qt в настройках времени выполнения вам нужно будет добавить путь к скомпилированным библиотекам ICU. Существует сетка, в которой вы устанавливаете переменные среды и т. Д. Вам нужен DYLD_LIBRARY_PATH, и вы устанавливаете (или добавляете) путь к библиотекам ICU.

Это позволит Qt разрешить ../lib/libicudata.46.1.dylib в фактический файл библиотеки.

person Dave Mateer    schedule 28.11.2012
comment
Я встретил ту же проблему. Я думал, что установка DYLD_LIBRARY_PATH в .bashrc будет в порядке, но, наконец, исправил, следуя вашим инструкциям. Точнее для новичков, шаги: в панели настроек проекта следуйте Projects > Run (under something like Qt 4.8.5) > Run Environment > Add, затем добавьте DYLD_LIBRARY_PATH и установите его в требуемый каталог lib. - person ying17zi; 11.07.2014
comment
Есть ли более масштабируемое решение для этого? Я пытаюсь настроить систему сборки без какого-либо жесткого программирования, и я новичок в среде OS X. Кроме того, я не использую Qt Creator. - person kayleeFrye_onDeck; 15.06.2016

В автономном установщике Qt 5.2.0 есть ошибка, из-за которой исполняемые файлы ищут библиотеки Qt в корневом пути, а не в местах установки.

Пример ошибки:

dyld: Library not loaded: /usr/local/Qt-5.2.0/lib/QtGui.framework/Versions/5/QtGui
Referenced from: /Users/JRP/Dropbox/STANFORD/CS106B/HW1/build-Life-Desktop_Qt_5
sudo ln -s /Users/$USER/Qt5.2.0/5.2.0/clang_64/ /usr/local/Qt-5.2.0
0_clang_64bit-Debug/Life.app/Contents/MacOS/Life Reason: image not found The program has unexpectedly finished.

Исправить:

Учитывая путь установки Qt, вы должны запустить либо:

sudo ln -s /Users/$USER/Qt5.2.0/5.2.0/clang_64/ /usr/local/Qt-5.2.0

Or

sudo ln -s /Users/ito/Qt/5.2.0/clang_64/ /usr/local/Qt-5.2.0

Думаю, вы поняли. Он просто создает ссылку из места установки qt в место, которое он ищет.

person Itay Grudev    schedule 07.02.2014

На Qt 5.11.3 я перезапустил QtCreator, и проблема была решена!

person user3405291    schedule 27.04.2019