Eu construí uma biblioteca a partir do código fonte e as libs estão em ~ / Desktop / xerces - como eu instalo essas bibliotecas para que o linker possa encontrá-las?

0

Eu tenho um monte de .so libs em ~ / Desktop / xerces depois de construir a biblioteca a partir do código-fonte. Eu gostaria agora de instalar estas bibliotecas (digamos em / usr / lib) e tê-las escolhidas por ld. Eu manualmente copiei as libs em / usr / lib com o sudo mv, mas ele não funcionou (e acho que essa é a maneira ruim de fazer isso de qualquer maneira).

    
por Joseph Malicke 23.07.2014 / 20:31

2 respostas

0

Eu irei negrito a parte em relação ao meu comentário.

Extraído de: Instalação do Xerces, Unix

Distribuição binária

Instale a distribuição binária xerces-c-3.1.1- {arch} - {os} - {compiler} .tar.gz extraindo os arquivos do archive compactado. Aqui {arch} denota a arquitetura da CPU, {os} denota o sistema operacional e {compiler} denota o compilador C ++ de sua escolha. Por exemplo:

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

Isso criará um subdiretório 'xerces-c-3.1.1-x86-linux-gcc-3.4' contendo a distribuição binária Xerces-C ++.

Você precisará adicionar o diretório xerces-c-3.1.1- {arch} - {os} - {compiler} / bin à sua variável de ambiente PATH:

Para Bourne Shell, K Shell ou Bash, digite:

export PATH="$PATH:<full-path-to-xerces-c-3.1.1-{arch}-{os}-{compiler}>/bin"

Para o C Shell, digite:

setenv PATH "$PATH:<full-path-to-xerces-c-3.1.1-{arch}-{os}-{compiler}>/bin"

Se você deseja tornar esta configuração permanente, é necessário alterar seu perfil alterando seus arquivos de configuração, que podem ser .profile ou .kshrc.

Além disso, você também precisará definir o caminho de pesquisa da biblioteca. (LIBPATH no AIX, LD_LIBRARY_PATH no Solaris e Linux, SHLIB_PATH no HP-UX e DYLD_LIBRARY_PATH no Mac OS X).

Nos seguintes comandos shell, o nome indica o caminho completo para o diretório xerces -c-3.1.1- {arch} - {os} - {compiler}. Para Bourne Shell, K Shell ou Bash, digite:

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)

Para o C Shell, digite:

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)

A distribuição binária contém as bibliotecas de analisadores pré-construídas e os executáveis de amostra. Consulte as Amostras para saber como executar as amostras.

Atualizar

Seja Source Or Binary, os caminhos da biblioteca devem ser exportados usando um dos trechos acima, pois a instrução de exportação diz ao compilador e ao vinculador onde procurar por suas bibliotecas.

Atualização 2

Caso isso falhe, você pode instalar o xerces-c do repositório usando sudo apt-get install xerces-c

    
por eyoung100 23.07.2014 / 20:50
0

No Ubuntu ld.so encontre e carregue as bibliotecas compartilhadas necessárias por um programa usando o arquivo de cache /etc/ld.so.cache e o caminho padrão /lib e, em seguida, /usr/lib .

De acordo com o manual do ldconfig:

% bl0ck_qu0te%

Você deve copiar sua biblioteca no diretório /path/as/you/like/lib e criar seu arquivo de configuração ld:

   sudo echo "/path/as/you/like/lib" > /etc/ld.so.conf.d/myLibrary.conf

Depois disso, execute:

   sudo ldconfig -v

Se /etc/ld.so.conf.d/ não existir, adicione o anúncio de linha ao final do arquivo /etc/ld.so.conf .

Aqui está o link para o manual do ldconfig para mais detalhes

    
por Lety 25.07.2014 / 00:41