Dyld: библиотека не загружена, Причина: изображение не найдено
Обычно я использовал gdb до этой недели. Теперь я запускаю gdb, я вижу:
(gdb) r
Starting program: /Volumes/MyProg
dyld: Library not loaded: @rpath/libCore.so
Referenced from: /Volumes/MyProg
Reason: image not found
(gdb)
Как это исправить?
У меня есть:
- OSX 10.9
- GNU gdb (GDB) 7.6, установленный с MacPorts
P.S.
Я переустановил gdb и Xcode. Это не помогает.
Я вижу много вопросов о проблемах с dyld, но, очевидно, мне не хватает опыта работы с библиотеками OSX, и они кажутся мне бесполезными.
Например, эта тема: библиотека dyld проблем не загружена
Но как загрузить библиотеку еще раз?
Или эта тема: Dyld: библиотека не загружена
Но как узнать имя установки? Что такое @rpath
?
Ответы
Ответ 1
Как я его исправил:
-
libCore.so
- это библиотека из рамки ROOT, которую использует MyProg
.
- Если я правильно понял, сообщение
Library not loaded: @rpath/libCore.so Referenced from: /Volumes/MyProg Reason: image not found
означает, что компоновщик нашел библиотеку, но не может ее использовать.
- Root, во время установки использует clang по умолчанию. Между тем, поскольку я предпочитаю, что gcc и
MyProg
использует gcc.
-
Я переустановил root с помощью gcc-компилятора:
./configure --with-cxx = g++ --with-cc = gcc --with-ld = g++
-
Я перекомпилировал MyProg
.
и теперь я могу отлаживать его с помощью gdb.
Ответ 2
Я решил эту проблему с "Встроенными бинарниками" в общих настройках проекта.
Ответ 3
Я решил эту проблему, изменив следующие настройки
Перейдите к настройке проекта Your_Target- > General- > Embedded Binaries- > Нажмите кнопку + и добавьте свою библиотеку здесь
Ответ 4
Дополнительную информацию о rpath можно найти здесь: ссылка
Итак, вам нужно указать путь к вашему libCore.so, но, честно говоря, я не сталкивался с этой библиотекой, поэтому не знаю, где она расположена.
Вы также можете проверить этот ответ, чтобы понять, что это rpath: answer