[Resolvido] Criando biblotecas - Como definir funções que não serão exportadas?

Iniciado por brunei, 25 de Janeiro de 2008, 14:11

tópico anterior - próximo tópico

brunei

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?
Bruno Ribeiro

brunei

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.
Bruno Ribeiro