Como adicionar caminho de bibliotecas ao comando ./configure?

40

Gostaria que ./configure ligasse a uma biblioteca e alguns incluíssem arquivos. Minha biblioteca é armazenada em /home/foo/sw/lib/ e meus arquivos são armazenados em /home/foo/sw/include .

./configure --help rejeita o seguinte:

Algumas variáveis ​​de ambiente influentes:

  CC           C compiler command
  CFLAGS       C compiler flags
  LDFLAGS      linker flags, e.g. -L<lib dir> if you have libraries in a 
               nonstandard directory <lib dir>
  LIBS         libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS     (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if 
               you have headers in a nonstandard directory <include dir>
  CPP          C preprocessor

Eu tentei várias combinações:

./configure --prefix=/home/foo/sw -I</home/foo/sw/include> -L</home/foo/sw/lib/>
./configure --prefix=/home/foo/sw -I=/home/foo/sw/include -L=/home/foo/sw/lib/
./configure --prefix=/home/foo/sw -I/home/foo/sw/include -L/home/foo/sw/lib/
etc..

Mas parece que não consigo acertar a sintaxe. Se alguém puder me ajudar, isso seria muito apreciado. OBRIGADO!

    
por BlackAdder 05.12.2013 / 06:34

1 resposta

42

Você perdeu o significado de

  

Algumas influentes variáveis ​​de ambiente :

Então você os define como uma variável de ambiente; O configure determina LDFLAGS e CPPFLAGS, verificando os arquivos de configuração e o ambiente. Você pode defini-los assim ...

export CPPFLAGS='-I/home/foo/sw/include'
export LDFLAGS='-L/home/foo/sw/lib/'
./configure

ou como um verso:

env CPPFLAGS='-I/home/foo/sw/include' LDFLAGS='-L/home/foo/sw/lib/' ./configure

Por favor, note que é possível que você não possa usar subdiretórios em /home/foo/sw/lib/

f.e. colocar sua biblioteca em /home/foo/sw/lib/bar/ pode mostrar um erro lib not found .

No entanto, você pode usar várias entradas:

LDFLAGS="-L/home/foo/sw/lib -L/home/foo/bar/lib"

    
por Rinzwind 05.12.2013 / 08:59

Tags