Подтвердить что ты не робот

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?

4b9b3361

Ответ 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