Linker [RESOLVIDO]

1. Linker [RESOLVIDO]

NICHOLAS
p0w3llx

(usa Debian)

Enviado em 30/08/2015 - 18:29h

Pessoal depois de compilar um programa eu sei que o eh a vez do linker fazer suas tarefas : porem fique uma duvida, eu sei que ele adiciona object files adicionais para criar um executavel mas, eu queria saber que bibliotecas e arquivos adicionais sao esses.


  


2. MELHOR RESPOSTA

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 02/09/2015 - 08:26h

Bom dia.


$ gcc -o hello hello.c
$ ldd hello
linux-vdso.so.1 => (0x00007fff6c56c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f78a1653000)
/lib64/ld-linux-x86-64.so.2 (0x00007f78a1a18000)
$


Dá uma olhada no manual do ldd. Elé é usado para mostrar as bibliotecas dinâmicas ligadas ao binário.

[]'s


$ cat codigo.c | indent -kr -i8
$ man indent

"(...)all right-thinking people know that (a) K&R are _right_ and (b) K&R are right." - linux/Documentation/CodingStyle - TORVALDS, Linus.


3. Re: Linker [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 31/08/2015 - 04:13h

Depende da implementação.

Se você usa o GCC como fornt-end para o linker, ele geralmente inclui os objetos que você mandar, aqueles que ele produzir como saída da compilação, alguns arquivos de inicialização (incluindo aquele código “mágico” que faz com que main() seja chamada e receba seus argumentos) e finalização (que cuida do que tem de ser feito depois que main() termina ou alguém chama exit() ou abort()), e a biblioteca padrão do C.

Se, no Linux, você chamar o linker diretamente, ele só vai processar o que você mandar explicitamente, e a ordem dos parâmetros é MUITO relevante.


4. Re: Linker [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 08/09/2015 - 12:40h

EnzoFerber escreveu:


$ gcc -o hello hello.c
$ ldd hello
linux-vdso.so.1 => (0x00007fff6c56c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f78a1653000)
/lib64/ld-linux-x86-64.so.2 (0x00007f78a1a18000)
$


Se a resposta é essa, a pergunta original deveria ter sido “como faço para ver as bibliotecas dinâmicas de que um executável depende?”.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts