web-dev-qa-db-ja.com

ライブラリパスを./configureコマンドに追加する方法は?

./configureをライブラリといくつかのインクルードファイルにリンクさせたいです。ライブラリは/home/foo/sw/lib/に保存され、ファイルは/home/foo/sw/includeに保存されます。

./configure --helpは次をスローします。

影響力のある環境変数:

  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

私はさまざまな組み合わせを試しました:

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

しかし、構文が正しいとは思えません。誰かが私を助けることができれば、それは大歓迎です。ありがとう!

50
BlackAdder

の意味を逃した

影響力のある環境変数

したがって、それらを環境変数として設定します。 configureは、構成ファイルと環境をチェックしてLDFLAGSとCPPFLAGSを決定します。このように設定できます...

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

またはワンライナーとして:

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

/home/foo/sw/lib/の下のサブディレクトリを使用できない可能性があることに注意してください

f.e.ライブラリを/home/foo/sw/lib/bar/に置くと、lib not founderrorが表示される場合があります。

ただし、複数のエントリを使用できます。

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

56
Rinzwind