Eu pedi uma questão semelhante , curiosamente também sobre a criação de tmux
de todas as coisas (embora eu ainda esteja certo de que isso se aplica a qualquer situação onde o GNU configure
e make
são usados juntos.
Eu acredito que uma abordagem mais limpa é utilizar o chamado "rpath" - o caminho de busca da biblioteca embutido no binário. A opção -rpath
de pelo menos o vinculador GNU ld
especifica o caminho.
A linha de comando de compilação teria a seguinte aparência:
PKG_CONFIG_PATH=/path/to/libevent/lib/pkg-config LDFLAGS=-Wl,-rpath,/path/to/libevent/lib ./configure ...
Não é realmente importante aqui, mas PKG_CONFIG_PATH
acima é simplesmente a maneira recomendada de fazer o que as pessoas realizam manualmente enviando -L/path/to/libevent/lib -I/path/to/libevent/include
para ./configure
script. Quando você cria libevent
, ele instala seus próprios arquivos de configuração para pkg-config
(que é usado por ./configure
). Você deve usá-lo, porque apenas libevent
definitivamente sabe quais switches devem ser usados ao construir contra ele.
De qualquer forma, em algumas situações, -rpath
é uma abordagem mais limpa para resolver o problema.
As soluções
LD_LIBRARY_PATH
-based, no entanto, permitem que você concilie a biblioteca usada pelo seu binário construído em tempo de execução, o que às vezes é desejável. Mas se você quiser apenas construir uma biblioteca específica que tenha colocado em um local dedicado em sua pasta pessoal em algum lugar, acho que as soluções baseadas em -rpath
devem ser consideradas uma resposta canônica.
O mais estranho é porque os scripts de compilação do tmux
'não inferem esse caminho do caminho de pesquisa da biblioteca durante a compilação. Talvez eles não precisem e não devam, eu não sei. É uma coincidência que isso tenha acontecido para nós que construímos tmux
?