Bibliotecas estáticas e dinâmicas no codeblocks.

Iniciado por Edimartin, 06 de Dezembro de 2010, 12:30

tópico anterior - próximo tópico

Edimartin

Olá pessoal do fórum.
A um tempinho eu tenho um pequeno problema com a programação em linux mas nunca tive coragem de ir a fundo. Agora eu estou em um projeto na universidade e é necessidade.

No windows eu crio um projeto de biblioteca estática e o minGW cria o arquivo libalgumacoisa.a; Para eu usar essa biblioteca no meu programa é só linkar -lalbumacoisa.
Depois eu crio uma biblioteca dinâmica. Ele gera dois arquivos. O primeiro é o libalgumacoisa.a, e o segundo é o algumacoisa.dll; Para eu usa eu preciso linkar -lalbumacoisa e colar a dll na mesma pasta do programa ou napastado ststema operacional.


O problema é que a equivalência disto em linux eu não conheço.

No ubuntu eu crio umma biblioteca estática. ele gera o libalgumacoisa.a; Para eu usala é necessário linkar -lalgumacoisa; (tudo normal)
O problema é que quando eu tentei criar a biblioteca dinâmica. Ele apenasgerou o arquivo algumacoisa.so (acredito que seja a biblioteca dinâmica do sistema operacional. A Dll).

As minhas perguntas são:
O compilador na opção de biblioteca dinâmica gera apenas o arquivo.so?
Se sim. Em qual pasta do compilador eu colo a biblioteca e como eu faço a lincagem para eu usa-la.

fpissarra

#1
Citação de: Edimartin online 06 de Dezembro de 2010, 12:30
As minhas perguntas são:
O compilador na opção de biblioteca dinâmica gera apenas o arquivo.so?
Se sim. Em qual pasta do compilador eu colo a biblioteca e como eu faço a lincagem para eu usa-la.

Sim, gera o .so

Na mesma pasta das libs estáticas: /usr/lib ou /usr/local/lib

Para linkar, use normalmente a opção -l do gcc... pelo que sei, ele procura pela lib dinâmica também. Você também pode criar um link simbólico com outro nome para resolver conflitos.

[]s
Fred