сотового оператора: библиотека не загружается ... причина: картинка не загружается
при попытке запустить исполняемый файл, который я отправил в Mac OS X, я получаю следующую ошибку
dyld: Library not loaded: libboost_atomic.dylib
Referenced from: /Users/"Directory my executable is in"
Reason: image not found
Trace/BPT trap:5
Я установил библиотеки boost, и они расположены в /opt/local/lib
. Я думаю, что проблема имеет какое-то отношение к исполняемому файлу, только глядя в каталог, в котором он находится, как когда я вставляю 'libboost_atomic.dylib ' там, он больше не возражает против этого. К сожалению, тогда он жалуется, что не может найти следующую библиотеку boost.
есть ли простой способ исправить это?
11 ответов:
найти все библиотеки boost:
$ otool -L exefile exefile: @executable_path/libboost_something.dylib (compatibility version 0.7.0, current version 0.7.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 65.1.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
и для каждого
libboost_xxx.dylib
, do:$ install_name_tool -change @executable_path/libboost_something.dylib /opt/local/lib/libboost_something.dylib exefile
и, наконец, проверить с помощью
otool
еще раз:$ otool -L exefile exefile: /opt/local/lib/libboost_something.dylib (compatibility version 0.7.0, current version 0.7.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 65.1.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
Manpages:
otool
install_name_tool
EDIT хотя это не обязательно относится к сторонним библиотекам (например, boost или Qt), если вы создаете приложение и
.dylib
из того же проекта Xcode, то вы можете на самом деле сделать это без используяinstall_name_tool
установка Имя Установки Динамической Библиотеки в настройках сборки. Вот пример, который позволяет исполняемому приложению загружать.dylib
С../Frameworks/
:
для некоторых, это может быть так же просто, как системный путь для динамических библиотек. В OS X это так же просто, как установить
DYLD_LIBRARY_PATH
переменные среды. Смотрите:
я получил эту ошибку, когда пытался установить ruby 2.3.1 с помощью rvm. Он сначала сказал мне бежать
brew update
, что я и сделал, а затем, когда я попытался запуститьrvm install ruby-2.3.1
, Я получил ошибку в этом так вопрос.исправление состояло в том, чтобы сначала запустить
brew upgrade
, по-видимому, в соответствии с этим superuser.com вопрос вам нужно сделать обаbrew update
&&brew upgrade
. Как только это было сделано, я мог, наконец, установить ruby 2.3.1.
можно использовать otool команда с опцией-L для исполняемого файла,которая будет отображать, где исполняемый файл ожидает, что эти библиотеки будут.
Если путь к ним нужно изменить, используйте install_name_tool команда, которая позволяет задать путь к библиотекам.
Я здесь пытаюсь запустить программу, которую я только что скомпилировал с помощью CMake. Когда я пытаюсь запустить его, он жалуется, говоря:
dyld: Library not loaded: libboost_system.dylib Referenced from: /Users/path/to/my/executable Reason: image not found
Я обошел проблему, сказав CMake использовать статическую версию Boost, вместо того, чтобы позволить ей использовать динамическую:
set(Boost_USE_STATIC_LIBS ON)
можно использовать
sudo install_name_tool -change
изменить путь dylib Иsudo install_name_tool -id
изменить имя dylib
для тех, кто пришел на эту страницу, потому что они получили эту ошибку, пытаясь связать стороннюю платформу с их проектом с помощью Xcode 6.3.1, проблема, с которой я столкнулся, заключалась в том, что библиотека создавалась с более старой версией компилятора, используя другую версию swift. Единственный способ исправить это для меня было в рамках.
еще одна причина, по которой вы можете получить это, указана в техническом документе Apple..
Если вы создаете приложение, которое не использует Swift, но внедряет контент, такой как фреймворк, который делает, Xcode не будет включать эти библиотеки в ваше приложение. В результате, ваше приложение аварии при запуске с сообщением об ошибке выглядит следующим образом:
установите встроенный контент содержит Swift-код (EMBEDDED_CONTENT_CONTAINS_SWIFT) build значение YES в вашем приложении
вот ссылка на полный документ Apple, который объясняет это здесь
Я столкнулся с проблемой сбоя приложения, цитируя ошибку SIGABRT в потоке.Обзор аварии библиотека dyld не загружается и изображение не найдено что-то вроде этого.
Это было видно в версии xcode 9.3.Причина, по которой я узнал, что xcode не собирает библиотеки динамически, поэтому мне пришлось сделать это вручную, что решило мою проблему с сбоем.
выполните следующие действия: Шаг 1: Перейти к этапам сборки Шаг 2: Нажмите кнопку " + "в верхней части и выберите" Новая фаза копирования файла" Шаг 3 : Выберите Назначение в качестве фреймворков и нажмите кнопку " + " ниже, чтобы добавить файлы. Шаг 4: выберите Добавить другие на ниже, нажмите CMD + SHIFT+G и вставьте ниже путь, /Применения/Xcode.app / Contents/Developer/Toolchains / XcodeDefault.xctoolchain/usr/lib/swift / iphoneos
теперь вы сможете увидеть некоторые swift dylibs, выберите все библиотеки swift .расширение dylib и нажмите кнопку Открыть.
Они будут добавлены к встроенным двоичным файлам на вкладке Общие приложение.
создайте новую группу в папке проекта и добавьте все эти библиотеки.
теперь запустите приложение.
Удачи В Кодировании