Kütüphane yolu ./configure komutuna nasıl eklenir?


51

./configureBir kütüphaneye bağlanmak istiyorum ve bazıları dosya içeriyor. Kütüphanem saklandı /home/foo/sw/lib/ve dosyalarım saklandı /home/foo/sw/include.

./configure --help aşağıdakileri atar:

Bazı etkili çevre değişkenleri:

  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

Çeşitli kombinasyonları denedim:

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

Ancak sözdizimini doğru anlayamıyorum. Biri bana yardım edebilirse, çok memnun olurum. TEŞEKKÜRLER!

Yanıtlar:


58

Anlamını özledin

Bazı etkili çevre değişkenleri :

Yani onları bir ortam değişkeni olarak ayarladınız; configure, config dosyalarını ve ortamı kontrol ederek LDFLAGS ve CPPFLAGS'ı belirler. Onları bu şekilde ayarlayabilirsiniz.

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

veya bir astar olarak:

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

Lütfen aşağıdaki alt dizinleri kullanamamanızın mümkün olduğunu unutmayın. /home/foo/sw/lib/

kütüphanenizi koymak fe /home/foo/sw/lib/bar/size bir lib not foundhata gösterebilir .

Ancak birden fazla giriş kullanabilirsiniz:

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


4
Belki de CPPFLAGS = '- Ben / home / foo / sw / include: $ CPPFLAGS' sadece orada bir şeyler varsa;)
Braiam

1
Merhaba, Rinzwind. Ben arasındaki fark hakkında karıştı LDFLAGS=-Lve LIBS=-l. Yardıma göre, aynı şey gibi görünüyor. Fark var mı?
user15964

@ user15964 -Lederken kütüphaneleri aramak için dizine karşılık gelir -l(o ürünle arayacaktır hangi bulmak için belirli bir kütüphaneye karşı bağlamak için bağlayıcı bildirir -Lvarsayılan dizisinin yanı sıra dizinleri.
sherrellbc

Neden bir /sonra LDFLAGSama sonra değil CPPFLAGS? Bu bir yazım hatası mı, yoksa önemli mi?
vy32

Perse değil, hem işe yarar hem de hayır. Sonunda /, bunun bir dizin olduğunu, ancak bunun da içermesi gerekmediğini belirtir.
Rinzwind
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.