Autor Tópico: Bibliotecas estáticas e dinâmicas no codeblocks.  (Lida 3082 vezes)

Offline Edimartin

  • Usuário Ubuntu
  • *
  • Mensagens: 39
    • Ver perfil
Bibliotecas estáticas e dinâmicas no codeblocks.
« Online: 06 de Dezembro de 2010, 12:30 »
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.

Offline fpissarra

  • Usuário Ubuntu
  • *
  • Mensagens: 246
    • Ver perfil
    • Lost in the e-Jungle
Re: Bibliotecas estáticas e dinâmicas no codeblocks.
« Resposta #1 Online: 06 de Dezembro de 2010, 17:44 »
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
« Última modificação: 06 de Dezembro de 2010, 17:48 por fpissarra »