Perguntas com a marcação «dynamic-linking»

Na computação, um vínculo dinâmico é o processo de um sistema operacional (SO) que carrega (copia do armazenamento persistente para a RAM) e vincula (preenche tabelas de salto e reposiciona ponteiros) as bibliotecas compartilhadas necessárias para um executável em tempo de execução, ou seja, quando é executado.

4
Como os números SO (objeto compartilhado) funcionam?
Estou ciente de que objetos compartilhados no Linux usam "so numbers", ou seja, que versões diferentes de um objeto compartilhado recebem extensões diferentes, por exemplo: example.so.1 example.so.2 Entendo que a idéia é ter dois arquivos distintos, de modo que duas versões de uma biblioteca possam existir em um sistema (em …

4
Onde os executáveis ​​procuram objetos compartilhados em tempo de execução?
Eu entendo como definir objetos compartilhados no momento da vinculação / compilação. No entanto, ainda me pergunto como os executáveis ​​procuram o objeto compartilhado ( *.sobibliotecas) no tempo de execução. Por exemplo, meu aplicativo a.outchama funções definidas na lib.sobiblioteca. Após a compilação, eu passo lib.sopara um novo diretório no meu …




3
Encontre onde está um símbolo de biblioteca compartilhada definido em um sistema ativo / liste todos os símbolos exportados em um sistema
Basicamente, são duas perguntas em uma - porque, se eu puder listar todos os símbolos exportados em um sistema, juntamente com o caminho de sua biblioteca compartilhada, poderia simplesmente obter grepessa saída. Para símbolos do kernel, acho que é um pouco mais fácil - porque sempre podemos cat /proc/kallsymsobter uma …



1
Por que os sistemas Unix / Linux não percorrem diretórios até encontrar a versão necessária de uma biblioteca vinculada?
Eu tenho um executável binário chamado "alpha" que requer uma biblioteca vinculada (libz.so.1.2.7) que é colocada em /home/username/myproduct/lib/libz.so.1.2.7 Exporto o mesmo para minha instância de terminal antes de gerar meu executável binário executando o seguinte comando. export LD_LIBRARY_PATH=/home/username/myproduct/lib/:$LD_LIBRARY_PATH Agora, quando eu surgir outro aplicativo "bravo" que requer a mesma biblioteca, …

9
Problema ao iniciar o java no Debian: “erro ao carregar bibliotecas compartilhadas: libjli.so”
Estou tentando iniciar o java: $ java -version java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory $ ldd /usr/lib/jvm/java-6-openjdk/jre/bin/java linux-gate.so.1 => (0xb779f000) libz.so.1 => /usr/lib/libz.so.1 (0xb7780000) libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7767000) libjli.so => /usr/lib/jvm/java-6-openjdk/jre/bin/../lib/i386/jli/libjli.so (0xb7762000) libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb775e000) libc.so.6 => /lib/i686/cmov/libc.so.6 …

1
Instalando dois glibc ao lado no debian / ubuntu
É possível instalar e usar duas versões diferentes da glibc na mesma máquina. Onde uma versão é usada apenas para executar software legado, que depende de binários glibc antigos? É possível fazer isso com a ajuda do gerenciador de pacotes (algo como "instalar este pacote e suas dependências para /opt/old-glibc), …



2
Posso usar meu próprio ld.so.cache?
ldconfig tem duas opções interessantes: -f conf Use conf instead of /etc/ld.so.conf. -C cache Use cache instead of /etc/ld.so.cache. Tentei copiar /etc/ld.so.confpara o meu próprio diretório pessoal e editei-o para incluir caminhos para minhas bibliotecas locais, por exemplo, /home/syockit/local/usr/libetc. ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache e, posteriormente, para confirmar que as …


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.