как внешняя ссылка на DLL происходит в Linux - PullRequest
0 голосов
/ 14 апреля 2011

Я запускаю приложение, которое использует созданную мной библиотеку.Этот пример приложения создается с помощью файла make, который создает приложение как

LIBNAME=/usr/local/App/lib/libMYLIB.so

$ (CC) -o образец sample.o $ (LIBNAME)

Iмогу запустить приложение без настройки LD_LIBRARY_PATH.Ожидается ли это?
Имеет ли какое-то отношение использование полного пути в LIBNAME?Пример ldd возвращает (среди других записей)

/usr/local/App/lib/libMYLIB.so (0x00002aaaaaaad000)

Какие изменения мне нужно сделать, чтобы без установки переменной env LD_LIBRARY_PATH мое приложение не работало.Использование -lMyLIB с помощью cc?

Спасибо.

1 Ответ

0 голосов
/ 14 апреля 2011

-L/usr/local/App/lib/ -lMYLIB - это то, что вы ищете.

Может случиться так, что при связывании с полным именем библиотеки будет установлен "rpath", который по сути является своего рода LD_LIBRARY_PATH, встроенным в исполняемый файл. Вы можете проверить текущее значение rpath (если есть), используя chrpath <executable>.

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