Onde colocar minhas próprias bibliotecas?

1

Eu tenho meus próprios arquivos de cabeçalho e bibliotecas, que eu não quero copiar para cada novo projeto, pois isso dificulta a correção de bugs ou a adição de novos recursos à biblioteca. Então eu quero colocá-los em um diretório 'público' como /usr/include ou /usr/local/include e suas contrapartes de bibliotecas, mas eu não sei onde estou mexendo com o sistema! Eu poderia criar meu próprio diretório e especificá-lo a cada compilação, mas isso é complicado. Onde posso colocar esses arquivos? Eu encontrei uma pergunta sobre isso, onde a resposta é /usr/local/include , mas eu li em algum lugar que é usado para o gerenciador de pacotes, isso é verdade?

    
por Kapichu 08.08.2014 / 12:15

2 respostas

1

Se os aplicativos forem usados por todos os usuários do sistema, a árvore /usr/local é o local ideal; nenhum pacote deve colocar arquivos lá (é para o software que você está compilando), mas o diretório /usr/local/lib está no caminho padrão para o carregador dinamyc. (veja /etc/ld.so.conf.d/libc.conf ).

Eu normalmente até mesmo movo a árvore /usr/local sob /home (apenas movendo o diretório /usr/local para /home/local e depois o symlinking /usr/local -> /home/local ) para que ela sobreviva a uma reinstalação completa (1).

Se os aplicativos são apenas para o seu usuário, eu normalmente crio $HOME/lib , $HOME/include e depois jogo com variáveis de ambiente ou sinalizadores de compilador para apontar para eles.

Notas de Rodapé

(1) Eu normalmente instalo / e /home em partições separadas, mas essa é uma escolha muito pessoal.

    
por Rmano 08.08.2014 / 12:25
0

Eu criei a convenção de criar um novo diretório local em / usr / local. então é / usr / local / local / lib para mim. Isso permite que outros desenvolvedores liberem seus dados em / usr / local e você não recebe nenhum conflito de nome de arquivo. Se você quiser publicar e mover suas coisas para / usr / local / lib e / usr / local / include, talvez seja necessário fazer uma alteração de nome em toda a sua origem e criar arquivos, o que será um problema, mas o sed ajudará se você tomar cuidado e prosseguir com cautela. Quando você tem bibliotecas em / usr / local / lib ou em qualquer lugar que não seja padrão, você deve definir a variável de ambiente LD_LIBRARY_PATH, portanto, executar programas sabe onde procurar se vincular.

    
por rhubarbdog 09.08.2014 / 13:16