Я пытаюсь установить приложение. Во время компиляции это перестало работать со следующей ошибкой:
/usr/bin/ld: cannot find -lemu
Я установил libemu библиотеку, и она теперь в настоящее время находится в/opt/libemu/. Однако, когда я пытаюсь скомпилировать свое приложение, библиотека не найдена. Там какой-либо путь состоит в том, чтобы исправить это?
Править: Также похоже, что делание приводит к: также похоже, что make-файл компилирует со следующим:
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions
build/temp.linux-x86_64-2.6/libemu_module.o
-L/opt/libemu/lib -lemu -o build/lib.linux-x86_64-2.6/libemu.so
Я попытался установить свой LD_LIBRARY_PATH на/opt/libemu, все еще не работает - перестал работать с упомянутой выше ошибкой.
Вам нужно сообщить компоновщику, где он находится:
gcc stuff -L/opt/libemu -lemu
или:
gcc stuff /opt/libemu/libemu.a
,где stuff
— это обычные файлы параметров компиляции/компоновки и т. д.
Вы также можете указать пути к библиотеке в переменной среды LIBRARY_PATH:
LIBRARY_PATH=/opt/libemu
export LIBRARY_PATH
перед запуском сборки. Еще один вариант — посмотреть, где gcc ищет библиотеки, выполнив:
gcc --print-search-dirs
и поместить свою библиотеку в один из перечисленных каталогов.
Редактировать: Из вашей последней информации действительно неясно, что вы пытаетесь построить. Вы пытаетесь превратить статическую библиотеку в разделяемую библиотеку? Самое главное - Каково точное имя файла библиотеки, скопированного в каталог /opt/libemu?
Переменная окружения LD_LIBRARY_PATH должна включать (но, вероятно, по умолчанию не включает) /opt/libemu.
try running:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libemu
make install