CentOS 6 Üzerinde LLVM ve Clang Kurulumu

LLVM açık kaynaklı bir derleyici altyapısıdır. LLVM 2000 yılında başlatıldı ve 2005 yılından bu yana Apple tarafından yaygın olarak kullanıldı ve değiştirildi. Clang, LLVM sistemiyle çalışan bir C, C ++, Objective-C ve Objective-C ++ derleyicisidir. Clang, 2007 yılında Apple tarafından başlatıldı ve o zamandan beri Google ve Intel, sürekli gelişimine dahil oldu.

Clang'ın geliştiricileri, GCC'ye kıyasla daha hızlı derlendiğini, daha az bellek kullandığını, derleme sırasında daha kullanıcı dostu tanılama sağladığını ve GCC ile uyumlu olduğunu iddia ediyor.

CentOS, Red Hat Enterprise Linux'un (RHEL) gelişimini takip ediyor. RHEL, her şeyin en son sürümlerini eklemek için acele etmediği anlamına gelen istikrarlı bir sunucu platformu olmaya çalışır.

Bu makalenin yazımından itibaren CentOS 6, LLVM & Clang v3.4.2'yi resmi olarak dağıtır. Ancak, Clang v3.6 yayınlandı.

Resmi öneri, LLVM & Clang'ın daha yeni bir sürümüne ihtiyacınız varsa, yazılım paketlerinin en son sürümlerini desteklemeye odaklanan farklı bir UNIX dağıtımını düşünmelisiniz.

Neyse ki, CentOS'a daha yeni bir sürüm LLVM & Clang GCC kurabilirsiniz. Bu sadece resmi olarak dağıtılmış yazılımı kullanmaktan sapar, ancak bazen çok az seçeneğiniz varmış gibi hissedebilirsiniz.

Bu makalede, LLOSM & Clang'ın resmi olarak desteklenen CentOS 6 sürümünün nasıl yükleneceği ve daha yeni bir sürümün nasıl yükleneceği açıklanır. Bu makalede, yeni kurulmuş bir CentOS 6 VPS olduğu varsayılmaktadır, ancak daha önce kullanmakta olduğunuz bir VPS'deki yönergeleri kesinlikle uygulayabilirsiniz.

Clang GCC büyük ölçüde bağımsızdır, ancak bu makalenin yazı olarak, Clang hala GCC tarafından yüklenen çeşitli paylaşılan kütüphaneleri (yani kullanır crtbegin.o, gccve gcc_s). LLVM & Clang'ı CentOS 6'ya kurarsanız, bu paylaşılan kütüphaneler için sisteminizde GCC yoksa hiçbir şey derleyemezsiniz. İdeal olarak yum, gcc ve gcc-c ++ için bir paket bağımlılığına sahip olacaktır, ancak bu makalenin yazımından itibaren yum bağımlılığın farkında değildir.

Ayrıca, kaynağından LLVM & Clang'ın daha yeni bir sürümünü oluşturmak için G ++ v4.7 + gerekir, bu da CentOS 6'yı kaynak tarafından yükleyerek alabilirsiniz.

Aşağıdaki adımların tümünü uygularsanız, 2 GCC sürümü ve 2 LLVM & Clang sürümü ile yüklenirsiniz. Bu, resmi olarak desteklenen bir ikili eski sürümü ve her program için kaynaktan daha yeni bir sürümü içerir. Ancak, aşağıdaki tüm adımları uygulamanıza gerek yoktur. LLVM & Clang'ın resmi olarak desteklenen ikili eski sürümünü mü yoksa daha yeni sürümünü kaynağından mı isteyeceğinize karar verebilir ve talimatların hangi bölümünün kararınıza uygun olduğunu çalıştırabilirsiniz.

LLVM & Clang'ın resmi olarak desteklenen (eski) bir sürümünü yükleyin

  1. ÖNEMLİ! İlk olarak, GCC'yi CentOS 6'ya Yükleme başlıklı makalede belirtilen adımları uygulayarak resmi olarak desteklenen (eski) bir GCC sürümünü yükleyin - bu makalenin "GCC'nin daha yeni bir sürümünü kaynaktan yükleme" ".

  2. LLVM ve Clang'ı yükle

    sudo yum install clang
        --- This will bring in llvm as a dependency
    
  3. Yüklü sürümleri kontrol edin ve konumlarını görün.

    clang --version
        May say: clang version 3.4.2 (tags/RELEASE_34/dot2-final)
    which clang
        /usr/bin/clang
    gcc --version
        May say: gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
    g++ --version
        May say: g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
    which gcc
        /usr/bin/gcc
    which g++
        /usr/bin/g++
    

Kaynaktan LLVM & Clang'ın daha yeni bir sürümünü yükleyin

CentOS'ta LLVM & Clang'ı kaynağına göre oluşturmak için GCC v4.7 veya üstü sürümlere sahip olmanız gerekir. CentOS 6, yum'da bu kadar yüksek bir sürüme sahip değildir, bu yüzden önce kaynaktan daha yeni bir GCC yüklemeniz gerekir.

  1. ÖNEMLİ! İlk olarak, GCC'yi CentOS 6'ya yükleme hakkında makaledeki adımları uygulayarak kaynaktan daha yeni bir GCC sürümünü yükleyin - bu makaledeki "GCC'nin daha yeni bir sürümünü yükleyin" başlığı dahil tüm adımları gerçekleştirmeniz gerekir. kaynak".

  2. Ek olarak gerekli paketleri kurun.

    sudo yum install cmake
    
  3. Python'un daha yeni bir sürümünü yükleyin. LLVM & Clang v3.6.0, Python v2.7 + gerektirir, ancak CentOS 6 yum deposunda yalnızca Python v2.6.6 bulunur.

    mkdir ~/sourceInstallations
    cd ~/sourceInstallations
    wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
    tar -xvf Python-2.7.9.tgz
    cd Python-2.7.9
    ./configure && make && sudo make install
    
  4. Hangi LLVM & Clang sürümünü istediğinize karar verin. Bu komut kullanılabilir sürümler için "etiketler" i gösterir.

    svn ls http://llvm.org/svn/llvm-project/llvm/tags | grep RELEASE
        RELEASE_1/
        ...
        RELEASE_352/
        RELEASE_360/
        RELEASE_361/
    svn ls http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_361
        rc1/
        --- At this time, there is no final, just a release candidate.  You could certainly use a release candidate, but this article will show how to use a final release.
    svn ls http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_360
        final/
        rc1/
        rc2/
        rc3/
        rc4/
    
  5. İstediğiniz LLVM & Clang sürümünün kaynağını alın. Bu birkaç dakika sürecek. Bu makalenin geri kalanı için yazılmıştır RELEASE_360/ve kaynakları içine indirir ~/sourceInstallations/llvm_RELEASE_360/- Gelecekteki sürümlere uyacak şekilde uygun etiketi değiştirmeniz gerekecektir. Aşağıda dizinleri compiler-rt, libcxxve libcxxabikesinlikle gerekli değildir, ancak LLVM & Clang GCC, bu nedenle bu makalenin içerdiği etmediğini sahip olduğu bazı özellikleri içerir. Dragonegg, LLDB, OpenMB, vmkit, polly, libclc, klee, SAFECode ve lld gibi kullanmayı seçebileceğiniz diğer LLVM "alt projeleri" vardır. Bunları LLVM web sitesinde okuyabilirsiniz .

    cd ~/sourceInstallations
    svn co http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_360/final llvm_RELEASE_360
    cd llvm_RELEASE_360/tools
    svn co http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_360/final clang
    cd ../projects
    svn co http://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_360/final compiler-rt
    svn co http://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_360/final libcxx
    svn co http://llvm.org/svn/llvm-project/libcxxabi/tags/RELEASE_360/final libcxxabi
    cd ..
    svn update
        At revision X.
        --- Hopefully this outputs one line saying "At revision X", but numbers instead of "X".  If it downloads more source files, a new revision was released while you were downloading the source code.  This is highly unlikely unless you're using trunk (the most up to date, maybe unstable code.)  But, if this happens, perform a svn update in the tools/clang, projects/compiler-rt, projects/libcxx, projects/libcxxabi, and again ~/sourceInstallations/llvm_RELEASE_360, until you are fully up to date.
    
  6. LLVM ve Clang oluşturun. Bu bir süre devam edecek. Bu doğru şekilde tamamlanırsa, göreceğiniz son satırda "başarı" yazacaktır. Bazı hata görünümlü mesajların hızla kaydırıldığını görmek normaldir. İşleri kaynak dizinden farklı bir dizinde oluşturmak her zaman iyi bir fikirdir.

    mkdir ../llvm_RELEASE_360_build
    cd ../llvm_RELEASE_360_build
    cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/local/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ ../llvm_RELEASE_360 && make && sudo make install && echo success
        --- If your VPS has multiple cores, you can speed up the build by changing the middle part
        ---   of this line from "&& make &&" to "&& make -j <number of cores> &&".
        --- You can see the number of cores your VPS has by running "nproc"
        --- If you omit -DCMAKE_BUILD_TYPE=Release, the build defaults to debug.  This is great if you need to debug LLVM & Clang itself, but slows down compilation of your end programs considerably.
        --- If you omit the references to gcc and g++, it will default to using the older binary versions in /usr/bin/, and will not compile.
    
  7. Yüklü sürümleri kontrol edin ve konumlarını görün.

    clang --version
        May say: clang version 3.6.0 (tags/RELEASE_360/final 237229)
    clang++ --version
        May say: clang version 3.6.0 (tags/RELEASE_360/final 237229)
    which clang
        /usr/local/bin/clang
    which clang++
        /usr/local/bin/clang++
    
  8. Yeni kütüphaneleri ld'ye (GNU bağlayıcısı) ekleyin.

    echo "/usr/local/lib" > usrLocalLib.conf
    sudo mv usrLocalLib.conf /etc/ld.so.conf.d/
    sudo ldconfig
        --- This may say a file or two "is not an ELF file - it has the wrong magic bytes at the start."
        --- You may ignore this message.  It is silent about the work it successfully completed.
    
  9. İsteğe bağlı olarak "merhaba dünya" programı yapın.

    mkdir ~/code
    cd ~/code
    Create a file main.cpp that says:
        #include <iostream>
        using namespace std;
        int main() {
            cout << "Hello world!" << endl;
            return 0;
        }
    --- One way to create this file is to run "vi main.cpp", hitting "i" to enter insert mode,
    ---   typing the above file, hitting ESC, and hitting "ZZ" to save.
    clang++ main.cpp -o main
    ./main
        Hello World!
    clang++ -stdlib=libc++ -lc++abi main.cpp -o main
        --- This uses Clang's libc++ and libc++abi, instead of the GNU stdlibc++ and stdlibc++abi
    ./main
        Hello world!
    
  10. İstediğiniz zaman LLVM & Clang kullanın.

    You could set LLVM & Clang to be your system's default C and C++ compiler by running:
        echo "export CC=/usr/local/bin/gcc" >> ~/.bashrc
        echo "export CXX=/usr/local/bin/g++" >> ~/.bashrc
        source ~/.bashrc
    Once and a while there is a difference between Clang and GCC, but it's becoming more and more rare.  To be more conservative, you could specify in your code's buildsystem to use LLVM & Clang, but otherwise leave your system's default to the source build of GCC.
    
  11. İsteğe bağlı olarak sabit sürücü alanını geri kazanın. Kişisel ~/sourceInstallationsklasör disk alanı 11TR etrafında alacak. Gelecekte bir noktada kullanmanız gerekebilecek isteğe bağlı yapılandırma seçenekleri olduğu için muhtemelen klasörleri saklamak akıllıca olacaktır ve zaten çok şey yapmak daha hızlı olacaktır. Ve yukarıda belirtildiği gibi, LLVM & Clang'a ekleyebileceğiniz ek "alt projeler" vardır. Ayrıca, derleme işlemi daha sonra bir şeyler ters giderse kontrol edip çalışabileceğiniz günlükler oluşturur. Ancak, daha önce "sudo make install" komutunu çalıştırdıktan sonra, kurulu LLVM & Clang bu dizindeki hiçbir şeye bağlı değildir ve alan bir premium olabilir, bu nedenle bu adımı uygulayabilir ve 11GB'yi geri alabilirsiniz.

    cd ~/
    rm -rf sourceInstallations
    --- Again, if you can spare the space, you may someday be happy to have left it there.
    

Artık daha yeni LLVM & Clang'ınız /usr/local/bin, daha yeni 64-bit LLVM & Clang kütüphaneleriniz var /usr/local/libve daha yeni LLVM & Clang'ınız dosyaları içeriyor /usr/local/include.



Leave a Comment

CentOS 7de Tavşan Kümesini Kümeleme

CentOS 7de Tavşan Kümesini Kümeleme

RabbitMQ, AMQP, STOMP ve diğer iletişim teknolojilerini destekleyen açık kaynaklı bir mesaj aracısıdır. Kurumsal uygulamalarda yaygın olarak kullanılan bir

Pagekit CMSyi CentOS 7ye Yükleme

Pagekit CMSyi CentOS 7ye Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Pagekit PHP ile yazılmış açık kaynaklı bir CMSdir. Pagekit kaynak kodu GitHubda herkese açık olarak barındırılıyor. Bu kılavuz size

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

Çok Güvenli FTP arka plan programı, ya da sadece vsFTPd, özelleştirme yeteneği olan hafif bir yazılım parçasıdır. Bu derste bir müttefikimiz olacak

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

Belirli durumlarda, Sistem Yöneticisinin bir kullanıcı hesabı oluşturması ve yalnızca kendi dosyalarını sFTP yoluyla yönetmek için erişimini kısıtlaması gerekebilir, ancak b

CentOS 6da ModSecurity ile NGINX kurulumu

CentOS 6da ModSecurity ile NGINX kurulumu

Bu makalede, ModSecurity tarafından korunan bir LEMP yığını oluşturmayı açıklayacağım. ModSecurity faydalı bir açık kaynaklı web uygulaması güvenlik duvarıdır.

CentOS 6 Üzerinde Apache, MySQL ve PHP Kurulumu

CentOS 6 Üzerinde Apache, MySQL ve PHP Kurulumu

Giriş LAMP, Linux, Apache, MySQL ve PHPnin kısaltmasıdır. Bu yazılım yığını, kurulum için en popüler açık kaynaklı çözümdür.

CentOS 7 Üzerinde Chamilo 1.11.8 Kurulumu

CentOS 7 Üzerinde Chamilo 1.11.8 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Chamilo, çevrimiçi eğitim ve takım işbirliği için yaygın olarak kullanılan ücretsiz ve açık kaynaklı bir öğrenme yönetim sistemidir (LMS).

CentOS 7ye Odoo 9 Topluluğunu Yükleme

CentOS 7ye Odoo 9 Topluluğunu Yükleme

Eskiden OpenERP olarak bilinen Odoo, iyi bilinen bir açık kaynaklı ERP iş platformudur. Her büyüklükteki işletme, bol miktarda lis sayesinde Odoodan yararlanabilir

Icinga2yi CentOS 6 veya CentOS 7de Ana / İstemci Modelini Kullanacak Şekilde Değiştirme

Icinga2yi CentOS 6 veya CentOS 7de Ana / İstemci Modelini Kullanacak Şekilde Değiştirme

Icinga2 güçlü bir izleme sistemidir ve bir ana istemci modelinde kullanıldığında, NRPE tabanlı izleme kontrollerine olan ihtiyacın yerini alabilir. Master-Clien

CentOS 7 LAMP VPSye Couch CMS 2.0 Kurulumu

CentOS 7 LAMP VPSye Couch CMS 2.0 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Couch CMS, web tasarımcılarının tasarlamalarını sağlayan basit ve esnek, ücretsiz ve açık kaynaklı bir İçerik Yönetim Sistemidir (CMS)

NetOSu CentOS 7ye Yükleme

NetOSu CentOS 7ye Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Netdata, gerçek zamanlı sistem ölçümleri izleme alanında yükselen bir yıldızdır. Aynı türdeki diğer araçlarla karşılaştırıldığında, Netdata:

CentPN 7 Üzerinde ERPNext Açık Kaynak ERP Kurulumu

CentPN 7 Üzerinde ERPNext Açık Kaynak ERP Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? ERP veya Kurumsal Kaynak Planlaması, temel iş süreçlerini yönetmek için kullanılan bir kurumsal uygulama paketidir. ERPNext ücretsizdir

CentOS 6da SA-MP San Andreas Çok Oyunculu Sunucu Kurma

CentOS 6da SA-MP San Andreas Çok Oyunculu Sunucu Kurma

Başka bir Vultr eğitimine hoş geldiniz. Burada, bir SAMP sunucusunun nasıl kurulacağını ve çalıştırılacağını öğreneceksiniz. Bu kılavuz CentOS 6 için yazılmıştır. Önkoşullar

KubOSM ile Kubernetesi CentOS 7de dağıtın

KubOSM ile Kubernetesi CentOS 7de dağıtın

Genel Bakış Bu makale, bir Kubernetes kümesini hemen kurup kubeadm ile çalıştırmanıza yardımcı olmak içindir. Bu kılavuz iki sunucuyu

CentOS 7de Geliştirme için Sails.jsyi kurun

CentOS 7de Geliştirme için Sails.jsyi kurun

Farklı Bir Sistem mi Kullanıyorsunuz? Giriş Sails.js, Ruby on Railse benzer şekilde Node.js için bir MVC çerçevesidir. Modern uygulamalar geliştirmek için yapar

CentOS 6da Half Life 2 Sunucusu Kurma

CentOS 6da Half Life 2 Sunucusu Kurma

Bu eğitimde, CentOS 6 Sistemine Half Life 2 oyun sunucusu kurma süreci ele alınacaktır. 1. Adım: Önkoşulları kurma

PrestaShopu CentOS 7ye Yükleme

PrestaShopu CentOS 7ye Yükleme

PrestaShop popüler bir açık kaynaklı e-ticaret çözümüdür. Kendi çevrimiçi mağazanızı ücretsiz oluşturmak için kullanabilirsiniz. Bu eğitimde, size

CentOS 7 LAMBA VPSye MODX Devrimi Nasıl Yüklenir

CentOS 7 LAMBA VPSye MODX Devrimi Nasıl Yüklenir

Farklı Bir Sistem mi Kullanıyorsunuz? MODX Revolution hızlı, esnek, ölçeklenebilir, ücretsiz ve açık kaynaklı, kurumsal düzeyde bir İçerik Yönetim Sistemi (CMS)

Ubuntu ve CentOS İçin Daha İyi İzleme Araçları

Ubuntu ve CentOS İçin Daha İyi İzleme Araçları

Giriş Linux sistemleri, süreçleri ve disk alanını izlemeye yardımcı olan varsayılan olarak top, df ve du gibi izleme araçlarıyla birlikte gelir. Çoğu zaman, onlar ar

CentOS 7de Kolab Groupware Kurulumu

CentOS 7de Kolab Groupware Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Kolab Groupware, ücretsiz ve açık kaynaklı bir web tabanlı grup yazılımı uygulamasıdır. Özellikleri e-posta iletişiminden, olaylardan oluşur

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun