У меня есть куча .so библиотек в ~ / Desktop / xerces после сборки библиотеки из исходного кода. Теперь я хотел бы установить эти библиотеки (скажем, в / usr / lib) и получить их от ld. Я вручную скопировал библиотеки в / usr / lib с помощью sudo mv, но это не сработало (и я думаю, что это плохой способ сделать это в любом случае).
На Ubuntu ld.so
находят и загружают общие библиотеки, необходимые программе с помощью файла кэша /etc/ld.so.cache
и путь по умолчанию /lib
, и затем /usr/lib
.
Согласно ldconfig руководству:
ldconfig создает, обновляет и удаляет необходимые ссылки и кэш (для использования компоновщиком во время выполнения, ld.so) в новые общие библиотеки, найденные в каталогах, определенных на командной строке, в файле/etc/ld.so.conf, и в доверяемых каталогах (/usr/lib и / lib). ldconfig проверяет заголовок и имена файлов библиотек, с которыми это встречается при определении, каким версиям нужно обновить их ссылки. ldconfig игнорирует символьные ссылки при сканировании для библиотек.
необходимо скопировать библиотеку в /path/as/you/like/lib
каталог и создать ld конфигурационный файл:
sudo echo "/path/as/you/like/lib" > /etc/ld.so.conf.d/myLibrary.conf
После этого, выполненный:
sudo ldconfig -v
, Если /etc/ld.so.conf.d/
не делает, существует, необходимо добавить рекламу строки конец /etc/ld.so.conf
файл.
Вот ссылка на ldconfig руководство для получения дополнительной информации
Я Буду Полужирный часть относительно моего комментария.
Взятый От: Xerces, Установка Unix
<час>Установка двоичное распределение xerces-c-3.1.1-{дуга} - {OS} - {компилятор} .tar.gz путем извлечения файлов из сжатого архива. Здесь {дуга} обозначает, что архитектура ЦП, {OS} обозначает, что операционная система и {компилятор} обозначают компилятор C++ по Вашему выбору. Например:
gzip -d xerces-c-3.1.1-x86-linux-gcc-3.4.tar.gz
tar -xf xerces-c-3.1.1-x86-linux-gcc-3.4.tar
Это создаст 'xerces-c-3.1.1-x86-linux-gcc-3.4' подкаталог, содержащий двоичное распределение Xerces-C++.
необходимо будет добавить xerces-c-3.1.1-{дуга} - {OS} - {компилятор} / каталог bin к переменной окружения PATH:
Для Оболочки Bourne, K Shell или Bash, введите:
export PATH="$PATH:<full-path-to-xerces-c-3.1.1-{arch}-{os}-{compiler}>/bin"
Для Оболочки C, введите:
setenv PATH "$PATH:<full-path-to-xerces-c-3.1.1-{arch}-{os}-{compiler}>/bin"
, Если Вы хотите установить эту постоянную настройку, необходимо изменить профиль путем изменения файлов настройки, которые могут быть или .profile или .kshrc.
, Кроме того, необходимо будет также установить путь поиска библиотеки. (LIBPATH на AIX, LD_LIBRARY_PATH на Солярисе и Linux, SHLIB_PATH на HP-UX и DYLD_LIBRARY_PATH на Mac OS X).
В следующих командах оболочки, обозначении полного пути к xerces-c-3.1.1-{дуга} - {OS} - {компилятор} каталог. Для Оболочки Bourne, K Shell или Bash, введите:
export LIBPATH=<xerces-path>/lib:$LIBPATH (AIX)
export LD_LIBRARY_PATH=<xerces-path>/lib:$LD_LIBRARY_PATH (Solaris, Linux)
export SHLIB_PATH=<xerces-path>/lib:$SHLIB_PATH (HP-UX)
export DYLD_LIBRARY_PATH=<xerces-path>/lib:$DYLD_LIBRARY_PATH (Mac OS X)
Для Оболочки C, введите:
setenv LIBPATH "<xerces-path>/lib:$LIBPATH" (AIX)
setenv LD_LIBRARY_PATH "<xerces-path>/lib:$LD_LIBRARY_PATH" (Solaris, Linux)
setenv SHLIB_PATH "<xerces-path>/lib:$SHLIB_PATH" (HP-UX)
setenv DYLD_LIBRARY_PATH "<xerces-path>/lib:$DYLD_LIBRARY_PATH" (Mac OS X)
двоичное распределение содержит предварительно созданные библиотеки синтаксического анализатора и демонстрационные исполняемые файлы. См. эти Образцы для того, как выполнить образцы.
<час>Обновление
Или Источник Или Двоичный файл, пути к библиотеке должны быть экспортированы с помощью одного из отрывков выше, поскольку оператор экспорта говорит компилятор и компоновщика, где искать библиотеки.
Обновление 2
В случае, если это перестало работать, можно установить xerces-c из репозитория использование sudo apt-get install xerces-c