Kuidas installida CentOS 6 LLVM-i ja Clangi

Kuidas installida CentOS 6 LLVM-i ja Clangi

LLVM on avatud lähtekoodiga kompilaatori infrastruktuur. LLVM sai alguse 2000. aastal ning Apple on seda laialdaselt kasutanud ja muutnud alates 2005. aastast. Clang on C, C++, Objective-C ja Objective-C++ kompilaator, mis töötab LLVM-süsteemiga. Clangi käivitas 2007. aastal Apple ning sellest ajast alates on Google ja Intel selle jätkuvas arendamises osalenud.

Clangi arendajad väidavad, et võrreldes GCC-ga kompileerib see kiiremini, kasutab vähem mälu, annab kompileerimise ajal kasutajasõbralikuma diagnostika ja ühildub GCC-ga.

CentOS järgib Red Hat Enterprise Linuxi (RHEL) arengut. RHEL püüab olla stabiilne serveriplatvorm, mis tähendab, et ta ei kiirusta kõige uuemate versioonide kaasamisega.

Alates selle artikli kirjutamisest levitab CentOS 6 ametlikult LLVM & Clang v3.4.2. Clang v3.6 on aga välja antud.

Ametlik soovitus on, et kui vajate LLVM & Clangi uuemat versiooni, peaksite kaaluma teistsugust UNIX-i distributsiooni, mis on rohkem keskendunud tarkvarapakettide uusimate versioonide toetamisele.

Õnneks saate CentOS-ile installida uuema versiooni LLVM & Clang GCC. See erineb puhtalt ametlikult levitatava tarkvara kasutamisest, kuid mõnikord võib tunduda, et teil on vähe valikut.

Selles artiklis kirjeldatakse, kuidas installida CentOS 6 ametlikult toetatud LLVM & Clangi versioon ja kuidas installida uuem versioon. See artikkel eeldab, et teil on värskelt installitud CentOS 6 VPS, kuid võite kindlasti järgida juba kasutatud VPS-i juhiseid.

Clang on suures osas GCC-st sõltumatu, kuid selle artikli kirjutamise seisuga kasutab Clang ikka veel mitmeid GCC installitud jagatud teeke (nimelt crtbegin.o, gcc, ja gcc_s). Kui installite LLVM & Clangi operatsioonisüsteemi CentOS 6, ei saa te midagi kompileerida, kui teie süsteemis pole nende jagatud teekide jaoks ka GCC-d. Ideaalis oleks yum paketisõltuvus gcc ja gcc-c++ klangi jaoks, kuid selle artikli kirjutamise seisuga ei ole yum sellest sõltuvusest teadlik.

Lisaks nõuab LLVM & Clangi allikast uuema versiooni loomine G++ versiooni 4.7+, mille saate hankida ainult CentOS 6-s, kui installite selle allika järgi.

Kui teete kõik allolevad toimingud, saate lõpuks kaks GCC versiooni ja kaks LLVM & Clangi versiooni. See hõlmab iga programmi ametlikult toetatud binaarset vanemat versiooni ja uuemat versiooni allikast. Siiski pole vaja kõiki alltoodud samme läbida. Saate otsustada, kas soovite LLVM & Clangi ametlikult toetatud binaarset vanemat versiooni või allika uuemat versiooni, ja käivitada mis tahes juhiste jaotis, mis sobib teie otsusega.

Installige LLVM & Clangi ametlikult toetatud (vanem) versioon

  1. TÄHTIS! Esmalt installige ametlikult toetatud (vanem) GCC versioon, järgides artiklis GCC installimine CentOS 6 -sse toodud samme – te EI pea täitma selle artikli pealkirja all olevaid samme "GCC uuema versiooni installimine allikast ".

  2. Installige LLVM & Clang

    sudo yum install clang
        --- This will bring in llvm as a dependency
    
  3. Kontrollige installitud versioone ja vaadake nende asukohti.

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

Installige allikast LLVM & Clangi uuem versioon

LLVM-i ja Clangi loomiseks allika järgi CentOS-is peab teil olema GCC v4.7 või uuem. CentOS 6-l pole yumis nii kõrget versiooni, seega peate esmalt installima allikast uuema GCC.

  1. TÄHTIS! Esmalt installige allikast GCC uuem versioon, järgides artiklis GCC installimine CentOS 6- sse toodud samme – peate tegema kõik selles artiklis olevad toimingud, sealhulgas jaotises "GCC uuema versiooni installimine allikas".

  2. Installige täiendavalt vajalikud paketid.

    sudo yum install cmake
    
  3. Installige Pythoni uuem versioon. LLVM ja Clang v3.6.0 nõuavad Pythoni versiooni 2.7+, kuid CentOS 6 yumi hoidlas on ainult 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. Otsustage, millist LLVM & Clangi versiooni soovite. See käsk näitab teile saadaolevate versioonide "silte".

    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. Hankige soovitud LLVM & Clangi versiooni allikas. See töötab mõne minuti. Ülejäänud osa sellest artiklist on kirjutatud RELEASE_360/ja laadib allikad alla ~/sourceInstallations/llvm_RELEASE_360/– tulevaste versioonide sobitamiseks peate asendama õige sildi. Allolevad kataloogid compiler-rt, libcxx, ja libcxxabiei ole absoluutselt vajalikud, kuid sisaldavad mõningaid LLVM & Clangi funktsioone, mida GCC-l ei ole, seega on need selles artiklis kaasatud. On ka teisi LLVM-i "alamprojekte", mida saate kasutada, näiteks dragonegg, LLDB, OpenMB, vmkit, polly, libclc, klee, SAFECOde ja lld. Nende kohta saate lugeda LLVM-i veebisaidilt .

    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. Ehitage LLVM ja Clang. See töötab mõnda aega. Kui see on õigesti lõpetatud, on viimasel real, mida näete, "edu". On normaalne, et mõned veanäitajad kiiresti mööda kerivad. Alati on hea mõte ehitada asjad lähtekataloogist erinevasse kataloogi.

    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. Kontrollige installitud versioone ja vaadake nende asukohti.

    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. Lisage uued teegid ld-le (GNU linker).

    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. Soovi korral koostage programm "Tere maailm".

    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. Kasutage LLVM & Clangi, kui soovite.

    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. Soovi korral saate kõvakettaruumi tagasi võtta. Teie ~/sourceInstallationskaust võtab umbes 11 GB kettaruumi. Ilmselt on mõistlik kaustad alles jätta, kuna on valikulisi seadistusvõimalusi, mida võib tekkida vajadus tulevikus kasutada, ja kiirem oleks, kui palju oleks juba tehtud. Ja nagu eespool mainitud, saate LLVM & Clangi lisada täiendavaid "alamprojekte". Samuti loob ehitusprotsess logisid, mida saate hiljem kontrollida ja kasutada, kui midagi läheb valesti. Kuid pärast "sudo make install" varasemat käivitamist ei sõltu teie installitud LLVM & Clang mitte millestki selles kataloogis ja ruumi võib olla liiga palju, nii et saate seda sammu teha ja 11 GB tagasi nõuda.

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

Teil on nüüd uuem LLVM & Clang kataloogis /usr/local/bin, uuemad 64-bitised LLVM & Clangi libised asukohas /usr/local/libja uuemad LLVM & Clangi failid sisaldavad faile /usr/local/include.


Installige Plesk operatsioonisüsteemi CentOS 7

Installige Plesk operatsioonisüsteemi CentOS 7

Kas kasutate teistsugust süsteemi? Plesk on patenteeritud veebihosti juhtpaneel, mis võimaldab kasutajatel hallata oma isiklikke ja/või klientide veebisaite, andmebaase

Kuidas installida CentOS-i Squid Proxy

Kuidas installida CentOS-i Squid Proxy

Squid on populaarne tasuta Linuxi programm, mis võimaldab teil luua edastamise veebipuhverserveri. Selles juhendis näete, kuidas installida Squid CentOS-i, et teid pöörata

Lighttpd (LLMP Stack) installimine CentOS 6-sse

Lighttpd (LLMP Stack) installimine CentOS 6-sse

Sissejuhatus Lighttpd on Apache'i hark, mille eesmärk on olla palju vähem ressursimahukas. See on kerge, sellest ka oma nimi, ja seda on üsna lihtne kasutada. Installin

Staatilise võrgu ja IPv6 konfigureerimine CentOS 7-s

Staatilise võrgu ja IPv6 konfigureerimine CentOS 7-s

VULTR on hiljuti teinud nende osas muudatusi ja kõik peaks nüüd töötama hästi, kui NetworkManager on lubatud. Kui soovite keelata

Icinga2 muutmine, et kasutada CentOS 6 või CentOS 7 põhi-/kliendimudelit

Icinga2 muutmine, et kasutada CentOS 6 või CentOS 7 põhi-/kliendimudelit

Icinga2 on võimas seiresüsteem ja kui seda kasutatakse põhikliendi mudelis, võib see asendada vajaduse NRPE-põhiste seirekontrollide järele. Meister-klient

Apache Cassandra 3.11.x installimine opsüsteemi CentOS 7

Apache Cassandra 3.11.x installimine opsüsteemi CentOS 7

Kas kasutate teistsugust süsteemi? Apache Cassandra on tasuta ja avatud lähtekoodiga NoSQL-i andmebaasihaldussüsteem, mis on loodud pakkuma skaleeritavust, hig.

Kuidas installida Microweber operatsioonisüsteemi CentOS 7

Kuidas installida Microweber operatsioonisüsteemi CentOS 7

Kas kasutate teistsugust süsteemi? Microweber on avatud lähtekoodiga pukseeritav CMS-i ja veebipood. Microweberi lähtekoodi majutatakse GitHubis. See juhend näitab teile

Mattermost 4.1 installimine CentOS 7-sse

Mattermost 4.1 installimine CentOS 7-sse

Kas kasutate teistsugust süsteemi? Mattermost on avatud lähtekoodiga isehostitav alternatiiv Slack SAAS-i sõnumsideteenusele. Teisisõnu, Mattermostiga saate ca

Minecrafti serverite võrgu loomine BungeeCordi abil opsüsteemides Debian 8, Debian 9 või CentOS 7

Minecrafti serverite võrgu loomine BungeeCordi abil opsüsteemides Debian 8, Debian 9 või CentOS 7

Mida vajate Vultr VPS-i, millel on vähemalt 1 GB muutmälu. SSH-juurdepääs (juur-/administraatoriõigustega). 1. samm: BungeeCordi installimine Kõigepealt

Võimaldab Pleskis krüptida

Võimaldab Pleskis krüptida

Pleski juhtpaneelil on Lets Encrypti jaoks väga kena integratsioon. Lets Encrypt on üks ainsatest SSL-i pakkujatest, kes väljastab sertifikaate täielikult

Võimaldab krüptida cPanelil

Võimaldab krüptida cPanelil

Lets Encrypt on sertifitseerimisasutus, mis on pühendunud SSL-sertifikaatide tasuta pakkumisele. cPanel on teie ja teie kliendi jaoks loonud korraliku integratsiooni

Kuidas installida Concrete5 süsteemi CentOS 7

Kuidas installida Concrete5 süsteemi CentOS 7

Kas kasutate teistsugust süsteemi? Concrete5 on avatud lähtekoodiga CMS, mis pakub palju eristatavaid ja kasulikke funktsioone, mis aitavad toimetajatel sisu hõlpsalt luua.

Kuidas installida CentOS 7 arvustuspaneeli

Kuidas installida CentOS 7 arvustuspaneeli

Kas kasutate teistsugust süsteemi? Review Board on tasuta avatud lähtekoodiga tööriist lähtekoodi, dokumentatsiooni, piltide ja palju muu ülevaatamiseks. See on veebipõhine tarkvara

Setup HTTP Authentication With Nginx on CentOS 7

Setup HTTP Authentication With Nginx on CentOS 7

In this guide, you will learn how to setup HTTP authentication for an Nginx web server running on CentOS 7. Requirements To get started, youll need th

Kuidas installida YOURLS süsteemi CentOS 7

Kuidas installida YOURLS süsteemi CentOS 7

YOURLS (Your Own URL Shortener) on avatud lähtekoodiga URL-i lühendamise ja andmeanalüüsi rakendus. Selles artiklis käsitleme installimisprotsessi

Kuidas installida ja konfigureerida ArangoDB CentOS 7-s

Kuidas installida ja konfigureerida ArangoDB CentOS 7-s

Kas kasutate teistsugust süsteemi? Sissejuhatus ArangoDB on avatud lähtekoodiga NoSQL-i andmebaas, millel on paindlik andmemudel dokumentide, graafikute ja võtmeväärtuste jaoks. see on

Etckeeperi kasutamine faili / etc versioonikontrolliks

Etckeeperi kasutamine faili / etc versioonikontrolliks

Sissejuhatus Kataloog /etc/ mängib Linuxi süsteemi toimimises kriitilist rolli. Selle põhjuseks on peaaegu iga süsteemi konfiguratsioon

Miks peaksite kasutama SSHFS-i? Kuidas ühendada CentOS 6-ga kaugfailisüsteem SSHFS-iga

Miks peaksite kasutama SSHFS-i? Kuidas ühendada CentOS 6-ga kaugfailisüsteem SSHFS-iga

Paljud süsteemiadministraatorid haldavad suuri servereid. Kui failidele on vaja juurde pääseda erinevatest serveritest, logige igasse eraldi sisse ca

Half Life 2 serveri seadistamine opsüsteemis CentOS 6

Half Life 2 serveri seadistamine opsüsteemis CentOS 6

See õpetus hõlmab Half Life 2 mänguserveri installimist süsteemi CentOS 6 System. 1. samm: eeltingimuste installimine Ou seadistamiseks

Kuidas installida Laravel GitScrum süsteemi CentOS 7

Kuidas installida Laravel GitScrum süsteemi CentOS 7

Laravel GitScrum ehk GitScrum on avatud lähtekoodiga produktiivsuse tööriist, mis on loodud selleks, et aidata arendusmeeskondadel rakendada Scrumi metoodikat sarnasel viisil.

Masinate tõus: AI tegelikud rakendused

Masinate tõus: AI tegelikud rakendused

Tehisintellekt ei ole tulevik, see on siin, olevikus. Sellest blogist loe, kuidas tehisintellekti rakendused on mõjutanud erinevaid sektoreid.

DDOS-i rünnakud: lühike ülevaade

DDOS-i rünnakud: lühike ülevaade

Kas olete ka DDOS-i rünnakute ohver ja olete segaduses ennetusmeetodite osas? Oma päringute lahendamiseks lugege seda artiklit.

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Võib-olla olete kuulnud, et häkkerid teenivad palju raha, kuid kas olete kunagi mõelnud, kuidas nad sellist raha teenivad? arutleme.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Kas soovite näha Google'i revolutsioonilisi leiutisi ja seda, kuidas need leiutised muutsid iga inimese elu tänapäeval? Seejärel lugege ajaveebi, et näha Google'i leiutisi.

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Isejuhtivate autode kontseptsioon tehisintellekti abil teedele jõudmiseks on meil juba mõnda aega unistus. Kuid vaatamata mitmele lubadusele pole neid kusagil näha. Lisateabe saamiseks lugege seda ajaveebi…

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Kuna teadus areneb kiiresti, võttes üle suure osa meie jõupingutustest, suureneb ka oht, et allume seletamatule singulaarsusele. Loe, mida singulaarsus meie jaoks tähendada võiks.

Andmesalvestuse areng – infograafik

Andmesalvestuse areng – infograafik

Andmete säilitamise meetodid on arenenud alates andmete sünnist. See ajaveeb käsitleb infograafiku alusel andmete salvestamise arengut.

Suurandmete viitearhitektuuri kihtide funktsioonid

Suurandmete viitearhitektuuri kihtide funktsioonid

Lugege ajaveebi, et kõige lihtsamal viisil teada saada Big Data Architecture'i erinevaid kihte ja nende funktsioone.

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

Selles digipõhises maailmas on nutikad koduseadmed muutunud elu oluliseks osaks. Siin on mõned nutikate koduseadmete hämmastavad eelised, mis muudavad meie elu elamisväärseks ja lihtsamaks.

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

Hiljuti andis Apple välja macOS Catalina 10.15.4 täiendusvärskenduse probleemide lahendamiseks, kuid tundub, et värskendus põhjustab rohkem probleeme, mille tulemuseks on Maci masinate tellimine. Lisateabe saamiseks lugege seda artiklit