Si të instaloni LLVM dhe Clang në CentOS 6

LLVM është një infrastrukturë përpiluesi me burim të hapur. LLVM filloi në vitin 2000 dhe është përdorur dhe modifikuar gjerësisht nga Apple që nga viti 2005. Clang është një përpilues C, C++, Objective-C dhe Objective-C++ që punon me sistemin LLVM. Clang filloi në vitin 2007 nga Apple, dhe që atëherë Google dhe Intel janë përfshirë në zhvillimin e saj të vazhdueshëm.

Zhvilluesit e Clang pretendojnë se në krahasim me GCC, ai përpilohet më shpejt, përdor më pak memorie, jep më shumë diagnostifikime miqësore për përdoruesit gjatë përpilimit dhe është i pajtueshëm me GCC.

CentOS ndjek zhvillimin e Red Hat Enterprise Linux (RHEL). RHEL përpiqet të jetë një platformë e qëndrueshme serveri, që do të thotë se nuk nxiton të përfshijë versionet më të fundit të gjithçkaje.

Që nga shkrimi i këtij artikulli, CentOS 6 shpërndan zyrtarisht LLVM & Clang v3.4.2. Megjithatë, Clang v3.6 është lëshuar.

Sugjerimi zyrtar është nëse keni nevojë për një version më të fundit të LLVM & Clang, duhet të konsideroni një shpërndarje të ndryshme UNIX e cila është më e fokusuar në mbështetjen e versioneve më të fundit të paketave softuerike.

Për fat të mirë, ju jeni në gjendje të instaloni një version më të fundit LLVM & Clang GCC në CentOS. Kjo devijon nga përdorimi thjesht i softuerit të shpërndarë zyrtarisht, por ndonjëherë mund të ndiheni sikur keni pak zgjedhje.

Ky artikull përshkruan se si të instaloni versionin e mbështetur zyrtarisht të CentOS 6 të LLVM & Clang dhe si të instaloni një version më të ri. Ky artikull supozon se keni një CentOS 6 VPS të sapo instaluar, megjithatë ju me siguri mund të ndiqni udhëzimet për një VPS që keni përdorur tashmë.

Clang është kryesisht i pavarur nga GCC, por që nga shkrimi i këtij artikulli, Clang ende përdor disa biblioteka të përbashkëta të instaluara nga GCC (domethënë, crtbegin.o, gcc, dhe gcc_s). Nëse instaloni LLVM & Clang në CentOS 6, nuk do të jeni në gjendje të përpiloni asgjë nëse nuk keni gjithashtu GCC në sistemin tuaj për këto biblioteka të përbashkëta. Idealisht, yum do të kishte një varësi të paketës për zhurmën e gcc dhe gcc-c++, por që nga shkrimi i këtij artikulli, yum nuk është në dijeni të varësisë.

Për më tepër, ndërtimi i një versioni më të ri të LLVM & Clang nga burimi kërkon G++ v4.7+, të cilin mund ta merrni vetëm në CentOS 6 duke e instaluar atë nga burimi.

Nëse kryeni të gjithë hapat e mëposhtëm, do të përfundoni me 2 versione të GCC dhe 2 versione të LLVM & Clang. Kjo përfshin një version të vjetër binar të mbështetur zyrtarisht dhe një version më të ri nga burimi për secilin program. Megjithatë, nuk ka nevojë të kryeni të gjitha hapat e mëposhtëm. Ju mund të vendosni nëse dëshironi versionin e vjetër binar të LLVM & Clang të mbështetur zyrtarisht, ose versionin më të ri nga burimi dhe të ekzekutoni cilindo seksion të udhëzimeve që i përshtatet vendimit tuaj.

Instaloni një version të mbështetur zyrtarisht (të vjetër) të LLVM & Clang

  1. E RËNDËSISHME! Së pari, instaloni një version (më të vjetër) të GCC të mbështetur zyrtarisht, duke kryer hapat në artikullin Si të instaloni GCC në CentOS 6 -- NUK keni nevojë të kryeni hapat nën titullin e atij artikulli "Instaloni një version më të ri të GCC nga burimi ".

  2. Instaloni LLVM & Clang

    sudo yum install clang
        --- This will bring in llvm as a dependency
    
  3. Kontrolloni versionet e instaluara dhe shikoni vendndodhjet e tyre.

    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++
    

Instaloni një version më të ri të LLVM & Clang nga burimi

Për të ndërtuar LLVM & Clang me burim në CentOS, duhet të keni GCC v4.7 ose më lart. CentOS 6 nuk ka një version kaq të lartë në yum, kështu që së pari duhet të instaloni një GCC më të fundit nga burimi.

  1. E RËNDËSISHME! Së pari, instaloni një version më të ri të GCC nga burimi, duke kryer hapat në artikullin Si të instaloni GCC në CentOS 6 -- ju duhet të kryeni të gjitha hapat në atë artikull, duke përfshirë nën titullin "Instaloni një version më të ri të GCC nga burimi”.

  2. Instaloni paketat e kërkuara shtesë.

    sudo yum install cmake
    
  3. Instaloni një version më të ri të Python. LLVM & Clang v3.6.0 kërkon Python v2.7+, por depoja CentOS 6 yum ka vetëm Python v2.6.6.

    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. Vendosni se cilin version të LLVM & Clang dëshironi. Kjo komandë do t'ju tregojë "etiketat" për versionet e disponueshme.

    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. Merrni burimin e versionit të LLVM & Clang që dëshironi. Kjo do të funksionojë për disa minuta. Pjesa tjetër e këtij artikulli është shkruar për RELEASE_360/dhe do të shkarkojë burimet në ~/sourceInstallations/llvm_RELEASE_360/-- Ju do të duhet të zëvendësoni etiketën e duhur për t'iu përshtatur versioneve të ardhshme. Drejtoritë e mëposhtme të compiler-rt, libcxxdhe libcxxabinuk janë absolutisht të nevojshme, por përmbajnë disa nga veçoritë që kanë LLVM & Clang që GCC nuk i ka, kështu që përfshihen në këtë artikull. Ka "nën-projekte" të tjera LLVM që mund të zgjidhni të përdorni, të tilla si dragonegg, LLDB, OpenMB, vmkit, polly, libclc, klee, SAFECode dhe lld. Ju mund të lexoni rreth tyre në faqen e internetit të LLVM .

    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. Ndërtoni LLVM & Clang. Kjo do të funksionojë për një kohë. Nëse kjo përfundon saktë, rreshti i fundit që do të shihni do të thotë "sukses". Është normale të shohësh disa mesazhe me pamje gabimi që lëvizin shpejt. Është gjithmonë një ide e mirë për të ndërtuar gjërat në një drejtori të ndryshme nga një direktori burimore.

    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. Kontrolloni versionet e instaluara dhe shikoni vendndodhjet e tyre.

    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. Shtoni bibliotekat e reja në ld (lidhësi GNU).

    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. Mundësisht bëni një program "hello world".

    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. Përdorni LLVM & Clang kur dëshironi.

    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. Kërkoni opsionalisht hapësirën në hard diskun. ~/sourceInstallationsDosja juaj do të zërë rreth 11 GB hapësirë ​​në disk. Ndoshta është e mençur të ruani dosjet, pasi ka opsione opsionale të konfigurimit që mund t'ju nevojiten t'i përdorni në një moment në të ardhmen, dhe do të ishte më shpejt të kishim bërë shumë. Dhe, siç u përmend më lart, ka "nën-projekte" shtesë që mund t'i shtoni në LLVM & Clang. Gjithashtu, procesi i ndërtimit krijon regjistra që më vonë mund t'i kontrolloni dhe të punoni nëse diçka shkon keq. Por, pas ekzekutimit të "sudo make install" më herët, LLVM & Clang e instaluar nuk varet nga asgjë në këtë direktori dhe hapësira mund të jetë me çmim të lartë, kështu që mund ta bëni këtë hap dhe të rimarrë 11 GB.

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

Tani keni LLVM & Clang tuaj më të ri në /usr/local/bin, LLVM & Clang libs më të reja 64-bitëshe në /usr/local/lib, dhe LLVM & Clang më të reja përfshijnë skedarë në /usr/local/include.


Leave a Comment

Instaloni Plesk në CentOS 7

Instaloni Plesk në CentOS 7

Përdorimi i një sistemi të ndryshëm? Plesk është një panel kontrolli i pronarit të hostit në internet që lejon përdoruesit të administrojnë faqet e tyre të internetit personale dhe/ose të klientëve, bazat e të dhënave

Si të instaloni Squid Proxy në CentOS

Si të instaloni Squid Proxy në CentOS

Squid është një program i popullarizuar, falas Linux që ju lejon të krijoni një përfaqësues në ueb përcjellës. Në këtë udhëzues, do të shihni se si të instaloni Squid në CentOS për t'ju kthyer

Si të instaloni Lighttpd (LLMP Stack) në CentOS 6

Si të instaloni Lighttpd (LLMP Stack) në CentOS 6

Hyrje Lighttpd është një fork i Apache që synon të jetë shumë më pak intensiv me burime. Është i lehtë, prandaj emri i tij, dhe është mjaft i thjeshtë për t'u përdorur. Instaloni

Konfigurimi i rrjeteve statike dhe IPv6 në CentOS 7

Konfigurimi i rrjeteve statike dhe IPv6 në CentOS 7

VULTR kohët e fundit ka bërë ndryshime në fund të tyre dhe gjithçka duhet të funksionojë mirë tani me NetworkManager të aktivizuar. Nëse dëshironi të çaktivizoni

Modifikimi i Icinga2 për të përdorur Modelin Master/Klient në CentOS 6 ose CentOS 7

Modifikimi i Icinga2 për të përdorur Modelin Master/Klient në CentOS 6 ose CentOS 7

Icinga2 është një sistem i fuqishëm monitorimi dhe kur përdoret në një model master-klient, ai mund të zëvendësojë nevojën për kontrolle monitorimi të bazuara në NRPE. Master-klien

Si të instaloni Apache Cassandra 3.11.x në CentOS 7

Si të instaloni Apache Cassandra 3.11.x në CentOS 7

Përdorimi i një sistemi të ndryshëm? Apache Cassandra është një sistem i menaxhimit të bazës së të dhënave NoSQL falas dhe me burim të hapur që është krijuar për të ofruar shkallëzim, të lartë

Si të instaloni Microweber në CentOS 7

Si të instaloni Microweber në CentOS 7

Përdorimi i një sistemi të ndryshëm? Microweber është një CMS me burim të hapur drag and drop dhe dyqan online. Kodi burimor Microweber është pritur në GitHub. Ky udhëzues do t'ju tregojë

Si të instaloni Mattermost 4.1 në CentOS 7

Si të instaloni Mattermost 4.1 në CentOS 7

Përdorimi i një sistemi të ndryshëm? Mattermost është një alternativë me burim të hapur, të vetë-strehuar për shërbimin e mesazheve Slack SAAS. Me fjalë të tjera, me Mattermost, ju rreth

Le të enkriptojmë në Plesk

Le të enkriptojmë në Plesk

Paneli i kontrollit Plesk përmban një integrim shumë të bukur për Lets Encrypt. Lets Encrypt është një nga ofruesit e vetëm SSL që jep plotësisht certifikata

Lejon enkriptimin në cPanel

Lejon enkriptimin në cPanel

Lets Encrypt është një autoritet certifikimi i dedikuar për të ofruar certifikata SSL pa pagesë. cPanel ka ndërtuar një integrim të pastër në mënyrë që ju dhe klienti juaj

Si të instaloni Concrete5 në CentOS 7

Si të instaloni Concrete5 në CentOS 7

Përdorimi i një sistemi të ndryshëm? Concrete5 është një CMS me burim të hapur që ofron shumë veçori dalluese dhe të dobishme për të ndihmuar redaktorët në prodhimin e përmbajtjes me lehtësi dhe

How to Install Review Board on CentOS 7

How to Install Review Board on CentOS 7

Using a Different System? Review Board is a free and open source tool for reviewing source code, documentation, images and many more. It is web-based softwar

Konfiguro vërtetimin HTTP me Nginx në CentOS 7

Konfiguro vërtetimin HTTP me Nginx në CentOS 7

Në këtë udhëzues, do të mësoni se si të konfiguroni vërtetimin HTTP për një server ueb Nginx që funksionon në CentOS 7. Kërkesat Për të filluar, do t'ju duhet

Si të instaloni YOURLS në CentOS 7

Si të instaloni YOURLS në CentOS 7

YOURLS (Shkurtësi juaj i URL-së) është një aplikacion për shkurtimin e URL-ve me burim të hapur dhe analitikë të të dhënave. Në këtë artikull, ne do të mbulojmë procesin e instalimit

Si të instaloni dhe konfiguroni ArangoDB në CentOS 7

Si të instaloni dhe konfiguroni ArangoDB në CentOS 7

Përdorimi i një sistemi të ndryshëm? Hyrje ArangoDB është një bazë të dhënash NoSQL me burim të hapur me një model fleksibël të dhënash për dokumente, grafikë dhe vlera-kyçe. Eshte

Përdorimi i Etckeeper për kontrollin e versionit të /etc

Përdorimi i Etckeeper për kontrollin e versionit të /etc

Hyrje Drejtoria /etc/ luan një rol kritik në mënyrën se si funksionon një sistem Linux. Arsyeja për këtë është sepse pothuajse çdo konfigurim i sistemit

Pse duhet të përdorni SSHFS? Si të montoni një sistem skedari në distancë me SSHFS në CentOS 6

Pse duhet të përdorni SSHFS? Si të montoni një sistem skedari në distancë me SSHFS në CentOS 6

Shumë administratorë të sistemit menaxhojnë sasi të mëdha serverash. Kur skedarët duhet të aksesohen nëpër serverë të ndryshëm, hyni në secilin individualisht rreth

Vendosja e një serveri Half Life 2 në CentOS 6

Vendosja e një serveri Half Life 2 në CentOS 6

Ky tutorial do të mbulojë procesin e instalimit të një serveri lojërash Half Life 2 në Sistemin CentOS 6. Hapi 1: Instalimi i parakushteve Për të vendosur ou

Si të instaloni Laravel GitScrum në CentOS 7

Si të instaloni Laravel GitScrum në CentOS 7

Laravel GitScrum, ose GitScrum është një mjet produktiviteti me burim të hapur i krijuar për të ndihmuar ekipet e zhvillimit të zbatojnë metodologjinë Scrum në një mënyrë të ngjashme.

Si të instaloni PowerDNS në CentOS

Si të instaloni PowerDNS në CentOS

Hyrje Në këtë tutorial të Vultr, do të mësoni se si të instaloni PowerDNS. PowerDNS është një program për ekzekutimin e serverëve tuaj të emrave. Është shumë e dobishme kur

Ngritja e makinave: Aplikimet në botën reale të AI

Ngritja e makinave: Aplikimet në botën reale të AI

Inteligjenca Artificiale nuk është në të ardhmen, është këtu në të tashmen Në këtë blog Lexoni se si aplikacionet e inteligjencës artificiale kanë ndikuar në sektorë të ndryshëm.

Sulmet DDOS: Një përmbledhje e shkurtër

Sulmet DDOS: Një përmbledhje e shkurtër

A jeni edhe ju viktimë e Sulmeve DDOS dhe jeni konfuz në lidhje me metodat e parandalimit? Lexoni këtë artikull për të zgjidhur pyetjet tuaja.

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

Ju mund të keni dëgjuar se hakerët fitojnë shumë para, por a keni menduar ndonjëherë se si i fitojnë ato para? Le te diskutojme.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Dëshironi të shihni shpikjet revolucionare nga Google dhe se si këto shpikje ndryshuan jetën e çdo njeriu sot? Më pas lexoni në blog për të parë shpikjet nga Google.

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

Koncepti i makinave vetë-drejtuese për të dalë në rrugë me ndihmën e inteligjencës artificiale është një ëndërr që e kemi prej kohësh. Por, pavarësisht nga disa premtime, ato nuk shihen askund. Lexoni këtë blog për të mësuar më shumë…

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Ndërsa Shkenca evoluon me një ritëm të shpejtë, duke marrë përsipër shumë nga përpjekjet tona, rriten edhe rreziqet për t'iu nënshtruar një Singulariteti të pashpjegueshëm. Lexoni, çfarë mund të thotë singulariteti për ne.

Evolucioni i ruajtjes së të dhënave - Infografik

Evolucioni i ruajtjes së të dhënave - Infografik

Metodat e ruajtjes së të dhënave kanë evoluar mund të jenë që nga lindja e të dhënave. Ky blog mbulon evolucionin e ruajtjes së të dhënave në bazë të një infografike.

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Lexoni blogun për të njohur shtresat e ndryshme në arkitekturën e të dhënave të mëdha dhe funksionalitetet e tyre në mënyrën më të thjeshtë.

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

Në këtë botë të drejtuar nga dixhitali, pajisjet inteligjente të shtëpisë janë bërë një pjesë thelbësore e jetës. Këtu janë disa përfitime të mahnitshme të pajisjeve shtëpiake inteligjente se si ato e bëjnë jetën tonë të vlefshme dhe më të thjeshtë.

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Së fundmi Apple lëshoi ​​macOS Catalina 10.15.4 një përditësim shtesë për të rregulluar problemet, por duket se përditësimi po shkakton më shumë probleme që çojnë në bricking të makinerive mac. Lexoni këtë artikull për të mësuar më shumë