Eclipse CDT Auto включает общие библиотеки - PullRequest
1 голос
/ 16 марта 2011

Я работаю в Eclipse: Helios Service Release 1 с использованием Eclipse CDT, компилирующим с использованием g ++

Я только начал изучать использование общих библиотек в своих проектах, но столкнулся с небольшой проблемой.У меня есть три проекта A, B и C. A и B - это совместно используемые библиотеки, а C - исполняемый файл.

При затмении мне удалось ссылаться на A и B из C и C компилируется и работает правильно, но когда япопробуйте запустить сгенерированную программу C вручную вне Eclipse. Я получаю следующую ошибку:

" ошибка при загрузке общих библиотек: libA.so: не удается открыть общий объектный файл: нет такого файла или каталога"

Я попытался переместить A.so B.so и C в одну папку и запустить C, но я получаю ту же ошибку.

Могу ли я заставить Eclipse построить свой проект со всеми файлами в одном месте, и они все еще будут работать, когда я перемещу их в новое место?

Ответы [ 2 ]

7 голосов
/ 21 февраля 2012

Запустите ldconfig от имени пользователя root для обновления кэша - если это все равно не поможет, вам нужно добавить путь к файлу ld.so.conf (просто введите его в отдельной строке) или, что еще лучше, добавитьзапись в новый файл (легче удалить) в каталоге ld.so.conf.d.

2 голосов
/ 11 октября 2011

Вам просто нужно установить LD_LIBRARY_PATH, чтобы включить папку, в которой находятся общие библиотеки.Примерно так: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/lib/

...