воскресенье, 25 ноября 2012 г.

Linux, как указать программе путь к .so библиотеке

Пока я разрабатывал одну библиотеку, мне нужно было как-то тестировать ее без копирования в соответствующие системные каталоги.
Идеальным выглядело решение, когда исполнительный файл с тестами и тестируемая библиотека лежат в одном каталоге, как в Windows. Проблема была в том, что в Linux это не работало - экзешник не мог найти библиотеку.

Решается это просто. экзешник нужно запускать следующей командой (при условии, что текущим каталогом является тот, где лежит экзешник с библиотекой/библиотеками):

$ LD_LIBRARY_PATH=`pwd` ./executable_name

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

$ ldd executable_name

или
$ readelf -d executable_name

Скорее всего просто напросто требуется библиотека с четко прописанной версией в ее названии. Например: libMyLib.so.1 вместо libMyLib.so.1.0.0
Лечится это символическими ссылками:

$ ln -s libMyLib.so.1.0.0 libMyLib.so.1

1 комментарий:

  1. Вот контактные данные г-на Бенджамина по электронной почте, lfdsloans@outlook.com. / Или Whatsapp +1 989-394-3740, который помог мне с займом в 90 000,00 евро, чтобы начать свой бизнес, и я очень благодарен, мне было очень тяжело, пытаясь найти способ, как матери-одиночке не было Со мной легко, но с помощью мистера Бенджамина я улыбаюсь на моем лице, когда я наблюдаю, как мой бизнес становится сильнее и расширяется. Я знаю, вы можете удивиться, почему я помещаю такие вещи здесь, но я действительно должен выразить свою благодарность, чтобы любой, кто ищет за финансовую помощь или преодоление трудностей с этим бизнесом или желание запустить бизнес-проект может позаботиться об этом и надеяться на выход из затруднений .. Спасибо.

    ОтветитьУдалить