Как загрузить дополнительные библиотеки для GDB?
Я пытаюсь отладить программу CUDA, но когда я запускаю gdb
вот так:
$ gdb -i=mi <program name>
$ r <program arguments>
Я:
/home/wvxvw/Projects/cuda/exercise-1-udacity/cs344/HW2/hw:
error while loading shared libraries: libcudart.so.5.0:
cannot open shared object file: No such file or directory
Process gdb-inferior killed
(отформатировано для удобства чтения)
(я запускаю gdb с помощью M-xgdb
) Если это имеет значение, то библиотеки CUDA находятся в .bashrc
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
4 ответов
ошибка при загрузке общих библиотек: libcudart.так что ... .5.0
эта ошибка не имеет ничего общего с GDB: ваш исполняемый файл, при запуске из GDB, не может найти нужную библиотеку.
экспорт LD_LIBRARY_PATH= "$LD_LIBRARY_PATH: / usr / local/cuda / lib64"
GDB запускает вашу программу в новом $SHELL
, Так что это должно было сработать. Интересно, есть ли какое-то взаимодействие с emacs.
в любом случае, это:
(gdb) set env LD_LIBRARY_PATH /usr/local/cuda/lib64
(gdb) run
исправить эту проблему.
обновление:
как я уже упоминал ранее, путь ld установлен правильно
нет,не. Если бы это было так, у тебя не было бы проблем.
теперь я не знаю почему это не правильно. Если вы действительно хотите узнать, начните с запуска GDB вне emacs (чтобы исключить возможные взаимодействия emacs).
если проблема все еще присутствует, ГДБ show env
, shell env
добавление echo "Here"
на ~/.basrc
, etc. должно помочь вам найти, где все работает не так, как вы ожидаете.
у меня была аналогичная проблема при попытке запустить gdb в windows 7. Я использую MobaXterm для доступа к панели инструментов Linux. Я установил gdb отдельно отhttp://www.gnu.org/software/gdb/ . Я заставил его работать, убедившись, что gdb может найти правильный .dll-файлы, как упоминалось занятым русским языком. Если у Вас установлен MobaXterm .dll-файлы должны отображаться в вашем домашнем каталоге в MobaXterm/slash/bin.
ГДБ не признаетLD_LIBRARY_PATH
переменной. Для меня это сработало когда я использовал переменную PATH вместо:
(gdb) set env PATH C:\Users\Joshua\Documents\MobaXterm\slash\bin
(gdb) run
Я бы подумал, используя PATH
вместо LD_LIBRARY_PATH
может работать для вас, если вы поместите правильный путь к своей библиотеке.
gdb ищет библиотеку, так почему вы обеспокоены путем включения? Вы можете попытаться установить параметр gdb "solib-search-path", чтобы указать местоположение libcudart.Итак.5.0 библиотека.
у меня тоже была эта проблема. Один из способов взглянуть на это заключается в том, что даже если переменная LD_LIBRARY_PATH верна при вводе show env
в gdb, это может быть неправильно, когда вы фактически выполняете программу, потому что gdb выполняет $SHELL -c <program>
запустить программу. Попробуйте это как тест, run $SHELL
из командной строки, а потом echo $LD_LIBRARY_PATH
. Правильно ли это? Если нет, то вам, вероятно, нужно добавить его в свой rc (.tcshrc в моем случае).