CFLAGS ve LDFLAGS'ı "yapılandırmak" için eklemek için doğru sözdizimi nedir?


40

OpenVPN'i, OpenVPN kaynak tarball'ı kullanarak OpenBSD 5.5'e kurmak istiyorum.

Buradaki talimatlara göre , lzo ve

CFLAGS = "- I / usr / yerel /" LDFLAGS = "- L / usr / yerel / lib" yönergesini "yapılandırmak" için ekleyin, çünkü gcc başka türlü bulamaz.

OpenBSD'de yukarıdakilerin nasıl yapılacağına dair rehberlik için yoğun bir şekilde googledim, ancak hiçbiri yok.

Yapmayı planladığım şey bu:

  1. Kaynak tarball'ı yeni oluşturulan bir dizine açın
  2. Komutu verin. /Configure CFLAGS = "- I / usr / local / include" LDFLAGS = "- L / usr / local / lib"
  3. Make komutunu verin
  4. Make make install komutunu verin

Aşağıdaki söz diziminden hangisi doğrudur?

./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"

veya

./configure --CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"

veya

./configure --CFLAGS="-I/usr/local/include" --LDFLAGS="-L/usr/local/lib"

Yanıtlar:


41

Doğru yol:

./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"

ancak bu tüm configurescriptlerde çalışmayabilir . Muhtemelen CPATHve gibi ortam değişkenlerini ayarlamak daha iyidir LIBRARY_PATH( gccman sayfasına bakınız ).

Bir örnek:

export CPATH=/usr/local/include
export LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH=/usr/local/lib

senin içinde .profile, örneğin. LD_LIBRARY_PATHBir çalışma yolu kullanılmadığı takdirde, paylaşılan kütüphanelerin durumunda gerekli olabilir (bu işletim sistemi bağlıdır, yapı araçları ve kullanılan seçenekler, ancak zarar olmamalıdır).


Cevabınız için teşekkürler. Gcc varsayılan olarak OpenBSD 5.5'in temel sistemine kurulur mu? Değilse, hata veya güvenlik açıkları içerebileceğinden üçüncü taraf bir paket yüklemeyeceğim.
user66229

1
@ user66229 eğer varsayılan bir kurulum yaptıysanız, evet, gcc-4.2.1(vaxen gibi gerçekten eski makinelerde değilseniz) comp55.tgz. İçin paketler vardır gcc-4.8ve 4.9ayrıca, ve llvm/clang 3.0. Eski esas olarak lisans nedeniyle (GPLv2 vs GPLv3) dahil edilmemiştir, ikincisi kullanılmaz çünkü OpenBSD'nin şu anda desteklediği tüm platformları desteklememektedir.
damien

1
@ user66229 Yanıtımı değiştirdim. Bu sadece bir örnektir, bunu yapmanın başka yolları olabilir ve zaten bazı ayarlarınız olabilir. İlk önce echo $CPATHvb. İle kontrol edin .
vinc17

1
"Ancak bu, tüm yapılandırma komut dosyalarıyla çalışmayabilir" yorumu için teşekkürler - CFLAGS ile derlenen birkaç bağımlılığın ardından, CFLAGS belirtildiğinde (ve gerçekten de, grep CFLAGS configurebu yapılandırma komut dosyasından boş bırakıldığında) son bağımlılığın çöktüğü bir durumla karşılaştım. .
sdaau

1
Çok dikkatli olurdumLD_LIBRARY_PATH : xahlee.info/UnixResource_dir/_/ldpath.html .
skalee

8

İlk sözdizimi doğrudur.

./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"

Bununla birlikte, ikili kullanım ya da SSS bölüm 15'de açıklandığı gibi, herhangi bir nedenden kaynak yapmak için hangi sebepten olursa olsun, altyapıyı kullanmanız şiddetle tavsiye edilir .packages(7)ports(7)

SSS bölümünde ayrıntılı olarak port ağacını ayarlayın. Ardından bir openvpnbağlantı noktası arayın :

cd /usr/ports
make search key=openvpn

Bu, terimi içeren bir dizi port çıkartacaktır openvpn. Bunlardan biri openvpn-2.3.2yolu ile net/openvpn.

cd net/openvpn
sudo make install clean

Bu, bağımlılıkların (yalnızca burada lzo2) sisteminizi engellemeden düzgün bir şekilde kurulmasını ve openvpnOpenBSD'de nasıl kullanılacağına ilişkin ek talimatlar almanızı sağlar .


Cevabınız için teşekkürler. OpenBSD 5.5 zaten bir OpenVPN (ikili) paketine sahip ancak 2.3.2 sürümünde eski. Yalnızca OpenVPN’in GitHub’ında bulunan en son 2.3.4 sürümünü derlemek ve kurmak istiyorum.
user66229

Lzo'dan bahsettiğin gibi üç tane ikili paket olduğunu fark ettim: lzo-1.08p3.tgz, lzo2-2.06p0.tgz ve lzop-1.03.tgz. Bunlardan hangisi OpenVPN'e bağımlılık?
user66229

1
@ user66229: Olurdu lzo2-2.06p0.tgz. İşte bir yama limanına yükseltir openvpngelen 2.3.2etmek 2.3.4, ancak aralarında OpenBSD alakalı pek bir değişiklik olduğunda iki sürümü (dizisinin tamamını okuyun). Ben ediyorum gerçekten, gerçekten sadece ikili paketi ile gitmek öneririz.
damien

@damien Cevabınız ve yamanın bağlantısı için teşekkürler. Düzeltme ekinin içeriğini okudum ve beni endişelendiren şey, OpenBSD for OpenVPN'de bir bakıcı olmaması . Lütfen ikili paketin openvpn-2.3.2.tgzOpenBSD'nin resmi indirme aynalarına nasıl ulaştığı konusundaki cevabını tahmin etmeme yardım edin.
user66229

1
@ user66229 burada portun Makefile listesindeki tüm revizyon listesini görebilirsiniz. Stuart Henderson'ın (ana paket sağlayıcılardan biri) bu konuda söylediği gibi, bu değişikliklerin çoğu OpenBSD ile ilgili değil.
damien,
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.