SORU
26 ŞUBAT 2012, Pazar


Nasıl HACCP, MPFR, MPC, ELF, paylaşılan kütüphaneler olmadan sıfırdan GCC yüklemek için?

Nasıl GCC (GNU Compiler Collection) çizik geçerli sürüm kullanarak kurarım
bağımlılıkları doğru sürümünü kullanarak, bir paket yöneticisi (gibi) yum, rpm, apt, paketi kullanarak, ve paylaşılan kütüphaneleri kullanarak değil mi?

Tipik geliştiriciler muhtemelen tipik bir şekilde GCC yüklemek istiyor için Paket Yöneticisi (yum, rpm, apt, paketi, liman, bira, vb.) ya da buradaki yönergeleri (http://gcc.gnu.org/wiki/InstallingGCC).

Benim sorum çizik, parça parça paylaşılan libaries olmadan GCC yüklemek için nasıl.

  • Benim sistemi etrafında herhangi bir paylaşılan kitaplıkları yaratmadan paylaşılan kitaplıkları kullanmadan ve taşınabilir tam bağımsız bir GCC istiyorum.
  • Bu aramalar GCC nedir "zor yolu" ve normal kullanıcılar için tavsiye edilmez.

GCC bağlıdır:

  • GMP: GNU Birden çok Hassas Aritmetik Kütüphane
  • MPFR: Çoklu duyarlıklı kayan nokta yuvarlama GNU Kütüphanesi
  • MPC: Çok hassas GNU C kütüphanesi
  • ELF: Çalıştırılabilir ve Linkli Biçimi Kütüphanesi
  • PPL: Parma Çokyüzlülere Kütüphanesi (), bellek iyileştirmeleri için isteğe bağlı

CEVAP
26 ŞUBAT 2012, Pazar


Kolay Yolu

Eğer sen normal bir geliştirici, sen-ecek büyük olasılıkla istediğiniz her şeyi yüklemek kolay yolu, kullanarak sisteminizin önerilen Paket Yöneticisi (gibi apt, yum, rpm, brew, port) veya kullanma talimatları http://gcc.gnu.org/wiki/InstallingGCC

Zor Yoldan

GCC cevabı burada "zor yoldan oluşturur çünkü" sıfırdan her şeyi olduğunu söyledi. Parça parça oluşturur ve paylaşılan kütüphaneleri kullanmaz.

GCC altyapı

GCC altyapı:

ftp://gcc.gnu.org/pub/gcc/infrastructure/

Temp dizini indirme (istediğinizi kullanabilirsiniz) koyun.

/opt/downloads

İndirme dizin veya alt dizin için farklı bir temp dizini: altyapı oluşturmak

/tmp/gcc

Altyapı bu gibi statik libaries kullanarak yapılandırma:

./configure --disable-shared --enable-static --prefix=/tmp/gcc

Disable-shared --bayrağı daha yakından bakmak değer ihtiyaçlarınıza bağlı olabilir. Sadece statik kod oluşturma olduğum için --disable-shared kullanıyorum, ve paylaşılan bir kod kurmak istemiyorum emin olmak istiyorum. Benim ihtiyacım olan tüm statik kod istiyorum yani benim diskler etrafında oluşan GCC kolayca hareket, ve paylaşılan bir kod istemiyorum. Eğer paylaşılan bir kod isterseniz, devre dışı bırak-shared --bayrak atlayın.

Sürümleri

Bu cevap komutlardan birini çalıştırdığınızda, emin komutları geçerli GCC sürüm numarasını kullanmak için güncelleme. Bu cevap komutları GCC 4.6.2.

GMP

GMP GNU Birden çok Hassas Aritmetik Kütüphanesi.

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2
bunzip2 gmp-4.3.2.tar.bz2
tar xvf gmp-4.3.2.tar
cd gmp-4.3.2
./configure --disable-shared --enable-static --prefix=/tmp/gcc
make && make check && make install

MPFR

MPFR GNU Çoklu duyarlıklı kayan nokta yuvarlama kütüphane. GMP bağlıdır.

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
bunzip2 mpfr-2.4.2.tar.bz2
tar xvf mpfr-2.4.2.tar
cd mpfr-2.4.2
./configure --disable-shared --enable-static --prefix=/tmp/gcc --with-gmp=/tmp/gcc
make && make check && make install

MPC

MPC ise GNU Çoklu duyarlıklı C kütüphanesi. GMP ve MPFR bağlıdır.

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz
tar zxvf mpc-0.8.1.tar.gz
cd mpc-0.8.1
./configure --disable-shared --enable-static --prefix=/tmp/gcc --with-gmp=/tmp/gcc --with-mpfr=/tmp/gcc
make && make check && make install

ELF

ELF Çalıştırılabilir ve Linkli Formatı içindir. Bu kütüphane mimari-bağımsız boyut ve indian destek sağlar.

wget http://www.mr511.de/software/libelf-0.8.13.tar.gz
tar zxvf libelf-0.8.13.tar.gz
cd libelf-0.8.13
./configure --disable-shared --enable-static --prefix=/tmp/gcc
make && make check && make install

GCC

GCC, GNU Derleyici Koleksiyonu. HACCP, MPFR, MPC, ve ELF bağlıdır.

wget http://www.netgull.com/gcc/releases/gcc-4.6.2/gcc-4.6.2.tar.gz
tar zxvf gcc-4.6.2.tar.gz

Üzerinde çizik dizinde gcc Build aynı bağlama noktası. (/Tmp içinde bina derleme host sorunları çapraz) tetikleyecektir

mkdir -p /opt/downloads/gcc-4.6.2-scratch
cd /opt/downloads/gcc-4.6.2-scratch

Yapılandırma komut ve bayrakları bir komut satırı (bu yazı web sayfa genişliği diye ayrı satırlarda onları gösterir) üzerinde olmalıdır.

Not: tam yol yapılandırmak için kullanıyoruz ve library path ortam değişkenleri ayarlayın. Biz seçmek için devre dışı önyükleme devre dışı bırakmak ve paylaşılan kitaplıklar çünkü biz istemiyoruz (Normal kullanıcılar, ister her ikisi de), ve kullanmak posıx threads ve bayrakları olan varsayılanları çünkü biz onlara (Normal kullanıcılar olabilir kullanmak istiyorsanız başka bir iş parçacığı veya atla varsayılan bayraklar). Ve bayraklar 29* *YMMV hakkında bilgi edinin

/opt/downloads/gcc-4.6.2/configure
  --disable-shared
  --disable-bootstrap
  --disable-libstdcxx-pch
  --enable-languages=all
  --enable-libgomp
  --enable-lto
  --enable-threads=posix
  --enable-tls
  --with-gmp=/tmp/gcc
  --with-mpfr=/tmp/gcc
  --with-mpc=/tmp/gcc
  --with-libelf=/tmp/gcc
  --with-fpmath=sse
make && make install

Bu sayfayı oluşturmak için nasıl yükleme bilgi, GCC büyük, çeşitli bayraklar, ve daha fazlası

http://www.acsu.buffalo.edu/~charngda/cc_build.html

Güncelleştirmeleri

Kütüphaneler bellek iyileştirmeleri için kullanılabilir ppl: bugseng.com/products/ppl/download (yorum Teşekkürler Paul)

Çalıştırabilir/.gcc kaynak dizinden/contrib download_prerequisites. (Reddit N7P için teşekkürler)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • dirkgently1

    dirkgently1

    13 NİSAN 2006
  • Le Cargo !

    Le Cargo !

    24 HAZİRAN 2007
  • MagmaRhino

    MagmaRhino

    16 Temmuz 2011