Tam bir Linux sistemini Intel'in derleyicisi ile GCC yerine derlemek mümkün müdür?


26

Belki bazı uyumluluk sorunları var?

Intel tabanlı sistemler için Intel derleyicisinin GCC'den daha iyi bir iş çıkarabileceği izlenimini edindim. Belki de bunu deneyen bir dağıtım zaten var?

Gentoo’nun kullanılmasının oldukça kolay olacağını düşünüyorum.


4
Burada bazı iyi bilgiler, daha önce bulmalıydım! gentoo-wiki.info/HOWTO_ICC_and_Portage
barrymac

5
Öncülünüzü merak etmeliyim: hangi derleyicinin "daha iyi bir iş" yaptığını nasıl ölçersiniz? Daha hızlı kod yürütme? Daha küçük ikili dosyalar? Daha hızlı derleme zamanı?
Eli Heady,

1
İlk önce daha hızlı kod ile ölçecektim, daha küçük ikili dosyalar ikinci, ancak oldukça dramatik olmadıkça ikili büyüklükleri pek umursamıyorlardı. Belki de başka bir endişe enerji verimliliği olabilir
barrymac

Yanıtlar:


29

Her şeyi icc ile derleyemezsin. Dışarıdaki birçok program, C diline GCC uzantıları kullanıyor. Ancak Intel, bu uzantıların çoğunu desteklemek için çok çaba sarf etti; örneğin, icc'nin son sürümleri Linux çekirdeğini derleyebilir.

Yazılımınızı alışılmadık bir şekilde yeniden derlemeyi seviyorsanız, Gentoo gerçekten en iyi seçeneğinizdir. Gentoo wiki icc sayfa büyük engel olarak açıklanır.

İlk önce basit bir Gentoo kurulumu yapın ve emerge icc. ICC'yi sisteminizde icc ile derlenmiş herhangi bir ikili dosyaya sahip olduğunuz sürece çıkarmayın. İcc'nin kurulu olduğunu unutmayın /opt; Bu sizin kök bölümünüzde değilse, önyükleme sırasında kullanılan programlardan herhangi biri icc ile derlendiyse, icc kitaplıklarını kök bölümünüze kopyalamanız gerekir.

/etc/portage/bashrcFavori derleme seçeneklerinizi ayarlayın ve bildirin; farklı derleyicilerle farklı paketler oluşturmayı destekleyen daha kapsamlı bir komut dosyası için Gentoo wiki'sine bakın (bu, icc bazı paketleri kırdığı için gereklidir).

export OCC="icc" CFLAGS="-O2 -gcc"
export OCXX="icpc" CXXFLAGS="$CFLAGS"
export CC_FOR_BUILD="${OCC}"

13

Kesinlikle ilginç bir deneyim olurdu. Tüm bir Linux dağıtımını alternatif bir derleyici kullanarak yeniden derlemek gerçekten kolay olmaz. Pek çok temel paket GCC'ye ve diğer GNU alet zinciri uygulamalarına bağlıdır.

GCC gerektirmeyen bu paketler için alternatif bir derleyici kullanmak bir melez oluşturmayı kullanmak uygun olacaktır. GCC'ye bağlı paketleri, derleyicinizle oluşturacak başkalarıyla değiştirmek mümkün olabilir, ancak çoğu durumda çok fazla alternatif yoktur. Varsa, bu alternatiflerin kullanım amacınız için işlevsel olup olmayacağını belirlemelisiniz.

Gerçek soru şu ki: buna değer mi? Gömülü bir sistem oluşturmaya çalışıyorsanız, alternatif bir derleyici daha küçük ikili dosyalar üretebilir. Bir hesaplama kümesi oluşturuyorsanız, kodun daha hızlı yürütülmesini sağlayabilirsiniz. Bir masaüstü oluşturuyorsanız, harika bir öğrenme deneyimi yaşarsınız.

Sonunda (bir masaüstü oluşturduğunuzu varsayarak) sonunda birçok kaynak dağıtım kullanıcısının karar verdiğinin doğru olduğunu göreceksiniz: optimize etmek ve inşa etmek ve yeniden inşa etmek için harcanan zamanın miktarı, daha hızlı kod yürütme tarafından kaydedilen zamandan daha ağır basıyor. Bu yapılmaması gerektiğini söylemek değil - oldukça eğlenceli olabilirdi. Bunu yaparsanız, bu site cevapları bulmak ve çabalarınızı belgelemek için harika bir yer olacaktır.

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.