Я пишу простую программу на C, которая использует библиотеку TagLib. Первоначально я установил библиотеку в / usr / local и скомпилировал и связал свою программу с ней. С тех пор я полностью удалил библиотеку и пытаюсь создать ссылку на скомпилированную версию библиотеки в другом месте. Проблема в том, что когда я сейчас компилирую свою программу, она компилируется чисто, но при попытке ее запустить моя программа ищет библиотеку, которая раньше существовала в / usr / local / lib, а не в новом месте. Например, мой код и новая библиотека TagLib находятся в /Users/mdi/Code/tag.
Я собираю свою программу так:
cc main.c -Wall -I./taglib/bindings/c -o tag -L./taglib/bindings/c/.libs -ltag_c
Как я уже сказал, компиляция завершается без ошибок и предупреждений. Но при попытке запустить двоичный файл я получаю эту ошибку:
dyld: Library not loaded: /usr/local/lib/libtag_c.0.dylib
Referenced from: /Users/mdi/Code/tag/./tag
Reason: image not found
Trace/BPT trap
Запуск 'otool -L' в двоичном файле показывает это:
tag:
/usr/local/lib/libtag_c.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)
Почему он все еще пытается использовать библиотеку TagLib, которой больше нет даже в / usr / local / lib и, что более важно, как мне это исправить?