C ++: странная ошибка в общей библиотеке - eclipse - PullRequest
2 голосов
/ 14 июля 2011

Я пытаюсь скомпилировать некоторый код. Вот ошибка, которую я получаю:

error while loading shared libraries: libcudart.so.4: cannot open shared object file

Теперь я включил /usr/local/cuda/include и связался с /usr/local/cuda/lib и передал флаг -lcudart в приглашении компиляции.

И все же я все еще получаю эту ошибку во время выполнения!

Я только начал использовать Eclipse, и это действительно раздражает.

Любое понимание высоко ценится.

Заранее спасибо,

Ответы [ 4 ]

4 голосов
/ 14 июля 2011

Обычно это происходит со старым кодом, когда они меняют структуру папок.Найдите, где файл ожидается в старом коде, а затем создайте ссылку sym, где он на самом деле.

Также попробуйте запустить eclipse от имени root.Или работает:

ldconfig /usr/local/cuda/lib
3 голосов
/ 14 июля 2011

По умолчанию компоновщик времени выполнения не видит вещи в / usr / local / cuda / lib. Вы должны явно сказать это, чтобы посмотреть там. Есть несколько методов:

  1. Установите переменную окружения LD_LIBRARY_PATH, содержащую /usr/local/cuda/lib.
  2. Запустите ldconfig /usr/local/cuda/lib от имени пользователя root.
  3. Добавьте -rpath=/usr/local/cuda/lib к аргументам компоновщика (-Wl,-rpath=/usr/local/cuda/lib, если связываетесь с g++).
2 голосов
/ 18 августа 2012

У меня была точно такая же ошибка.Я использую затмение Юнона с Cuda под Ubuntu 10.04.Проблема заключалась в том, что, хотя я уже настроил путь компоновщика так, чтобы он указывал на /usr/local/cuda/lib64~/.bashrc и т. Д.), Затмение все еще не могло его найти.Я мог запустить скомпилированный (через eclipse) проект из терминала, но он не смог соединиться в терминале eclipse после попытки Run.

Моим решением было добавить переменную LD_LIBRARY_PATH со значением /usr/local/cuda/lib64в File->Properties->Run/Debug Settings->Edit (Selected project)->Environment Tab

Я не знаю, есть ли более постоянное решение, но оно сработало для меня.Я должен также упомянуть, что я уже добавил соответственно некоторые дополнительные переменные в Building Environment (C/C++ Build->Environment в окне свойств), потому что я не мог построить проект по той же причине.

Единственная странная вещьчто сначала он мог работать без проблем, а затем, когда я снова открыл затмение, появилась эта ошибка, и я ничего не изменил.

0 голосов
/ 14 июля 2011

Существует ли файл с ожидаемым именем в правильном каталоге? Указывает ли символическая ссылка (я предполагаю, что у вас есть указатель на версионный .so) и является ли она действительным общим объектом? У вас есть права на чтение для этого файла?

Теперь вы говорите, что это ошибка времени выполнения при попытке скомпилировать код. Вы имеете в виду, что вы можете скомпилировать, тогда, когда вы запускаете ошибку, или ошибка возникает, когда вы пытаетесь запустить компилятор (ошибка компоновщика)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...