Autor Tópico: [Resolvido] Criando biblotecas - Como definir funções que não serão exportadas?  (Lida 1991 vezes)

Offline brunei

  • Usuário Ubuntu
  • *
  • Mensagens: 97
    • Ver perfil
    • Ubuntu Brasil - Wiki
Olá meus amigos!

Estou criando umas bibliotecas em C, mas sou iniciante nisso. Percebi, inclusive lendo o manual Library-HOWTO, que não precisamos explicitar quais funções serão exportadas quando criamos bibliotecas. Entretanto, quero criar uma biblioteca onde algumas funções não devem ser exportadas e serão apenas para uso interno. Se todas as funções são automaticamente exportadas por padrão, como faço para impedir esse comportamento?
« Última modificação: 22 de Fevereiro de 2008, 08:44 por brunei »
Bruno Ribeiro

Offline brunei

  • Usuário Ubuntu
  • *
  • Mensagens: 97
    • Ver perfil
    • Ubuntu Brasil - Wiki
Re: Criando biblotecas - Como definir funções que não serão exportadas?
« Resposta #1 Online: 22 de Fevereiro de 2008, 08:33 »
Ontem eu estava procurando sobre visibilidade de símbolos nos arquivos compilados e achei essa entrada sobre a documentação do GCC:

GCC Attribute Overview
http://www.ohse.de/uwe/articles/gcc-attributes.html#func-visibility

Definindo esse atributo, você poderá ocultar o símbolo (de funções, por exemplo) de uma biblioteca quando compilada. Assim, funções que desejar serem apenas internas à biblioteca ou programa não estarão disponíveis para que outros programas utilizem. Seria o mesmo que não exportar uma função quando criando uma biblioteca em ambiente Windows.
« Última modificação: 22 de Fevereiro de 2008, 08:36 por brunei »
Bruno Ribeiro