67 votes

Comment ajouter le chemin des bibliothèques à la commande ./configure ?

Je voudrais ./configure pour établir un lien avec une bibliothèque et quelques fichiers d'inclusion. Ma bibliothèque est stockée dans /home/foo/sw/lib/ et mes fichiers sont stockés dans /home/foo/sw/include .

./configure --help jette ce qui suit :

Quelques variables d'environnement 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

J'ai essayé diverses combinaisons :

./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..

Mais je n'arrive pas à trouver la bonne syntaxe. Si quelqu'un peut m'aider, ce serait très apprécié. MERCI !

77voto

Rinzwind Points 270388

Vous n'avez pas compris le sens de

Certaines personnes influentes variables d'environnement :

Vous les définissez donc comme une variable d'environnement ; configure détermine LDFLAGS et CPPFLAGS en vérifiant les fichiers de configuration et l'environnement. Vous pouvez les définir comme ceci ...

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

ou en une seule phrase :

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

Veuillez noter qu'il est possible que vous ne puissiez pas utiliser les sous-répertoires sous /home/foo/sw/lib/

par exemple en mettant votre bibliothèque dans /home/foo/sw/lib/bar/ pourrait vous montrer un lib not found erreur.

Toutefois, vous pouvez utiliser plusieurs entrées :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X