2014-04-26 22 views
7

Debian wheezy çalıştırıyorum ve GCC 4.7.2'den GCC 4.9.0'a yükseltmek istedim. Ben yüklü these instructions gereğinceGCC 4.9.x nasıl derlenir ve çalıştırılır?

libgmp-dev, libmpfr-dev ve libmpc-dev (paketim yöneticisi bana sürümleri 2 verdi: 5.0.5 + dfsg-2 sırasıyla 3.1.0-5 ve 0,9-4) ve gcc derlemek için aşağıdaki koştu (

tar xzf gcc-4.6.2.tar.gz 
cd gcc-4.6.2 
./contrib/download_prerequisites 
cd .. 
mkdir objdir 
cd objdir 
$PWD/../gcc-4.6.2/configure --prefix=$HOME/gcc-4.6.2 
make 
make install 

Şimdi malzeme dolu bir objdir dizini var, ama nerede g ++, ve nerede bu dizini koymak olmalıdır: benim durumumda 4.9.0 yerine) 4.6.2 ait olduğunu unutmayın?

Tahminimce usr/local numaralı telefona taşıyayım ve PATH değişkenime bir şey ekleyeyim, fakat tam olarak ne olduğunu ve eski gcc kurulumundan önce nasıl arandığını bilmiyorum.

+0

Ana dizinde ikili dosyalar bulunan 'gcc-4.9.0' dizin yok mu? –

+0

Bir çok şey çok ilginç: 1) Neden 4.6.2 dizinine 4.9.0 yüklüyorsunuz? :-) 2. Neden ../xyz yerine $ PWD /../ xyz kullanıyorsunuz? Yürütülebilirleri $ HOME/gcc /bin/ – Klaus

+0

@ Klaus'da bulabilirsiniz. Onu 4.9.0'a yükledim ve neden gerçekten "$ PWD" kullandıklarını bilmiyorum ama iyi çalışıyor. “G ++” yazdığımda debian ile gelen gcc yerine yeni yüklememe işaret ettiğimden emin olabilir miyim? – arman

cevap

7

bu komutları yaptıktan sonra yeni gcc $HOME/gcc-4.9.0 dizinde kurulacak

$PWD/../gcc-4.9.0/configure --prefix=$HOME/gcc-4.9.0 
make install 

(yapılandırmanın --prefix seçeneği dikkat edin) (içine bin, lib, share gibi alt dizinleri olmamalıdır).

gcc tam yolu burada olacak (gcc için sembolik bağdır) $HOME/gcc-4.9.0/bin/gcc ve g++ olacaktır: $HOME/gcc-4.9.0/bin/g++.

gcc derleyici sürücüsü birden fazla dil için sürücüleri uyguladığı için, ayrı olarak g++ ayrı ayrı olamaz; mod (C veya C++), gcc veya g++ sürücüsünü çalıştırmak için kullanılan ikili adın () temel alınarak seçilir (bu mod ayrıca bağlantı bayraklarını da etkiler) ve kaynak dosya uzantılarında (gcc hem C hem de C++ programlarını girdi olarak kabul eder) nesne dosyalarına derleme için). Bu nedenle g++, make install tarafından sembolik bağlantı olarak oluşturulabilir ve oluşturulan sembolik bağın depolandığı yer $prefix/bin'dur.

GCC'yi oluşturduktan ve $HOME/gcc-4.9.0 dizinine yükledikten sonra kullanabilirsiniz; ama varsayılan sistem gcc güncellenmez. Dağıtım gcc güncellemesi dağıtım araçları (apt, dpkg-build, vb.) Ile yapılmalıdır. Wheezy için sistem geneli gcc'nin mevcut prebuild sürümü, Jessie and Sid için 4.7.2, 4.8.2 ve "Experimental" için 4.9-2.

+0

'u okuduğunuzdan ve anladığınızdan emin olun, böylece' g ++ ' bir şekilde bu yeni ikiliyi işaret etmek için komut vermeliyim? G ++? – arman

+0

'u çalıştırmak istediğimde her seferinde bu dizine manüel olarak işaret etmem gerekecek, kendi $ PATH ortam değişkeninizi değiştirebilir, buna yeni dizin ekleyebilirsin:/usr/Örneğin, bash kullanırsanız, ~/.bashrc' dosyasına ekleyin: 'export PATH = ~/gcc-4.9.0/bin: $ PATH' Sonra kontrol etmek için yeni terminali açın. – osgx

+0

@osgx : Gcc-4.9.0 kurulumu ve kullanımı ile ilgili ayrıntılı bilgiler için teşekkürler. GNU/Linux terminalimdeki en son gcc/g ++ 'yi bu SO postasında adım adım anlatılan şekilde kurabilir ve kullanabilirim. $ HOME/objdir dizinini güvenli bir şekilde silip silemeyeceğimi bilmek için ... Makinemde 3.3GB boyutunda. –

İlgili konular