Я собрал библиотеку из исходного кода, а библиотеки находятся в ~ / Desktop / xerces & mdash; как мне установить эти библиотеки, чтобы компоновщик мог их найти?

У меня есть куча .so библиотек в ~ / Desktop / xerces после сборки библиотеки из исходного кода. Теперь я хотел бы установить эти библиотеки (скажем, в / usr / lib) и получить их от ld. Я вручную скопировал библиотеки в / usr / lib с помощью sudo mv, но это не сработало (и я думаю, что это плохой способ сделать это в любом случае).

0
задан 23 July 2014 в 22:31

2 ответа

На 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 руководство для получения дополнительной информации

0
ответ дан 23 July 2014 в 22:31

Я Буду Полужирный часть относительно моего комментария.

Взятый От: 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

0
ответ дан 23 July 2014 в 22:31

Другие вопросы по тегам:

Похожие вопросы: