Como criar e usar bibliotecas dinâmicas e estáticas no linux (programação c)?

0

Sou iniciante e estou muito confuso sobre como posso criar e usar bibliotecas dinâmicas e estáticas? Estudei sites diferentes e pesquisei no Google, mas não consigo entender.

Alguém pode explicar aqui de uma maneira fácil de como criar e usar bibliotecas dinâmicas e estáticas em c e bibliotecas estáticas versus dinâmicas? E também, por favor, me diga por que usar gcc -c e gcc -o . Eu sei que gcc é um compilador mas -c e -o . Qual é esse propósito?

    
por Hameed Khan 27.11.2015 / 15:45

2 respostas

2

Como você não sabe o que -c (arquivo de objeto de compilação) e -o (especificar arquivo de saída), sugiro começar com uma compilação executável simples. Entenda o que são arquivos de objetos e como eles são colocados juntos.

Continue com as bibliotecas estáticas. Entenda que bibliotecas estáticas são apenas vários arquivos de objetos arquivados juntos. Como eles são especificados para o compilador e como o compilador os encontra.

Então, finalmente, tente os dinâmicos. Entenda que eles estão ligados em tempo de execução. Que você precisa especificar onde eles são encontrados. Que eles são compilados e ligados de uma maneira diferente (você já viu -fPIC ainda?). Que eles podem depender um do outro. Eles são feras poderosas que podem te morder facilmente:)

E uma maneira fácil de criar bibliotecas estáticas e dinâmicas? Esqueça de escrevê-los manualmente e use o cmake. Se você quiser ir fundo, execute make com VERBOSE=1 , veja os argumentos do compilador e aprenda.

    
por 27.11.2015 / 17:21
0

não sabe onde começar a responder sua pergunta aqui.

se você acabou de consultar a página man do gcc

 man gcc

Ele solucionará sua pergunta sobre as opções e o uso do gcc.

Para a parte de bibliotecas dinâmicas e estáticas, há um longo caminho a percorrer e há documentação claramente compreensível na Internet, por exemplo:

  http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html

é um bom lugar para começar

    
por 27.11.2015 / 15:52

Tags