-
Muitas bibliotecas usam pkg-config, portanto, diga onde encontrar seus arquivos
.pc
instalados localmente:export PKG_CONFIG_PATH="$LOCAL/lib/pkgconfig:$LOCAL/share/pkgconfig"
(Os diretórios do sistema serão incluídos automaticamente.)
Às vezes, um comando específico da biblioteca é usado em vez do genérico pkg-config ; por exemplo, krb5-config . Nesse caso, aponte para o diretório
bin
:export PATH="$LOCAL/bin:$PATH"
-
Se o pkg-config não for usado, você terá que apontar manualmente o compilador e o linker para o lugar certo.
export CFLAGS="-I$LOCAL/include" # for the C compiler export CXXFLAGS="-I$LOCAL/include" # for the C++ compiler export LDFLAGS="-L$LOCAL/lib" # for the linker
-
./configure --help
normalmente listará uma série de--with-feature=...
opções, que permitem especificar locais de cada biblioteca separadamente.Geralmente,
./configure --help
também lista variáveis de ambiente para cada biblioteca (comoCURL_CFLAGS
eCURL_LIBS
); procure por "sinalizadores de compilador C" ou "sinalizadores de linker" no texto de ajuda.Se você precisar de mais de uma biblioteca personalizada, isso rapidamente se tornará inconveniente; você deve especificar o caminho do pkg-config e os cflags para todas as bibliotecas de uma só vez.
-
Você pode também precisar apontar o carregador para o local da sua biblioteca durante a compilação. Para Linux, seria:
export LD_LIBRARY_PATH="$LOCAL/lib"
Isso não deve ser necessário quando executar programas compilados; o linker terá adicionado os caminhos corretos para o próprio binário compilado (procure por "Library rpath" em
readelf -d yourprogram
se você quiser verificar).Para o Mac OS X, definir
DYLD_LIBRARY_PATH
deve ter um efeito semelhante;otool
pode ser usado para inspecionar aplicativos.
Em todos os exemplos acima, $LOCAL
será o prefixo que você usou ao instalar as bibliotecas; por exemplo, se você usou ./configure --prefix ~/usr
, use ~ / usr aqui.