Como disponibilizar novos arquivos de cabeçalho universalmente?

Como disponibilizar novos arquivos de cabeçalho universalmente?

Acabei de baixar alguns novos arquivos de cabeçalho e tenho uma pasta deles que desejo disponibilizar. Primeiramente, gostaria de disponibilizá-los para qualquer arquivo que deseje utilizá-los. Então, eu gostaria de poder incluir o novo arquivo de cabeçalho (chame-o de newheader.h) onde eu quiser, assim como math.h, por exemplo. Onde devo colocá-lo?

Segundo, desejo disponibilizar esses arquivos para todos os usuários. Eu tenho permissões de root. Existe um diretório especial onde preciso colocá-lo? Muito obrigado!

Responder1

Armazene-os em /usr/local/include. Dehttp://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html, os itens neste diretório estão "... protegidos contra serem substituídos quando o software do sistema for atualizado", o que é importante, pois você não deseja que os arquivos de cabeçalho que você baixou sejam sobrecarregados por atualizações do sistema, o que pode acontecer se você colocá-los em /usr/include.

Responder2

No MEU sistema, o /usr/local/include/diretório existe e está vazio. O padrão de hierarquia do Filsystem diz (ESF 3.0) o diretório a ser usado é /usr/local/include. Os arquivos devem ser legíveis por todos ( 0444) e os diretórios devem ser pesquisáveis ​​( 0555).

Responder3

A questão é: o que você deseja alcançar?

Normalmente você tem três cenários:

  • desenvolvimento
  • instalação local (no seu $HOME)
  • instalação global

Para os dois primeiros, você provavelmente deve usar a -Iopção para fornecer um caminho para os cabeçalhos. O primeiro provavelmente seria -I../mylib/include, o segundo pode ser -I/home/user/local_libs/somelib/include.

A terceira é uma instalação global, que deve colocá-los em /usr/local/include, mas gerenciada por uma ferramenta como automake ou cmake. Ao empacotar, o mantenedor deve adaptar o installpath e/ou o caminho de inclusão para instalar os cabeçalhos no /usr/include.

Ao usar o automake você pode receber avisos além do--prefix parâmetroo padrão é /usr/localpara uma instalação segura que não interfere nos pacotes do sistema, enquanto os mantenedores do Debian executam os ./configure --prefix=/usrscripts de seus pacotes. O caminho de inclusão é construído a partir deste prefixo, portanto segue a instalação do pacote.

informação relacionada