Kuinka asentaa LLVM ja Clang CentOS 6: een

Kuinka asentaa LLVM ja Clang CentOS 6: een

LLVM on avoimen lähdekoodin kääntäjäinfrastruktuuri. LLVM aloitettiin vuonna 2000, ja Apple on käyttänyt ja muokannut sitä laajasti vuodesta 2005. Clang on C-, C++-, Objective-C- ja Objective-C++-kääntäjä, joka toimii LLVM-järjestelmän kanssa. Apple aloitti Clangin vuonna 2007, ja siitä lähtien Google ja Intel ovat osallistuneet sen jatkuvaan kehittämiseen.

Clangin kehittäjät väittävät, että GCC:hen verrattuna se kääntää nopeammin, käyttää vähemmän muistia, antaa käyttäjäystävällisemmän diagnostiikan kääntämisen aikana ja on yhteensopiva GCC:n kanssa.

CentOS seuraa Red Hat Enterprise Linuxin (RHEL) kehitystä. RHEL pyrkii olemaan vakaa palvelinalusta, joten se ei kiirehdi sisällyttämään uusimpia versioita kaikesta.

Tämän artikkelin kirjoittamisesta lähtien CentOS 6 jakelee virallisesti LLVM & Clang v3.4.2:ta. Clang v3.6 on kuitenkin julkaistu.

Virallinen ehdotus on, että jos tarvitset uudemman version LLVM & Clangista, sinun tulee harkita erilaista UNIX-jakelua, joka keskittyy enemmän ohjelmistopakettien uusimpien versioiden tukemiseen.

Onneksi voit asentaa uudemman version LLVM & Clang GCC CentOS:ään. Tämä poikkeaa puhtaasti virallisesti jaettujen ohjelmistojen käytöstä, mutta joskus saatat tuntea, ettei sinulla ole juurikaan valinnanvaraa.

Tässä artikkelissa kuvataan, kuinka CentOS 6:n virallisesti tuettu versio LLVM & Clangista asennetaan ja uudempi versio asennetaan. Tässä artikkelissa oletetaan, että sinulla on juuri asennettu CentOS 6 VPS, mutta voit varmasti noudattaa jo käyttämäsi VPS:n ohjeita.

Clang on suurelta osin riippumaton GCC:stä, mutta tämän artikkelin kirjoittamisesta lähtien Clang käyttää edelleen useita GCC:n asentamia jaettuja kirjastoja (eli crtbegin.o, gcc, ja gcc_s). Jos asennat LLVM & Clangin CentOS 6:een, et voi kääntää mitään, jos järjestelmässäsi ei ole myös GCC:tä näitä jaettuja kirjastoja varten. Ihannetapauksessa yum olisi pakettiriippuvuus gcc:n ja gcc-c++:n clangille, mutta tätä artikkelia kirjoitettaessa yum ei ole tietoinen riippuvuudesta.

Lisäksi LLVM & Clangin uudemman version rakentaminen lähteestä vaatii G++ v4.7+:n, jonka saat vain CentOS 6:ssa asentamalla sen lähteen mukaan.

Jos suoritat kaikki alla olevat vaiheet, saat 2 versiota GCC:stä ja 2 versiota LLVM & Clangista. Tämä sisältää virallisesti tuetun vanhemman binaariversion ja uudemman version jokaiselle ohjelmalle. Kaikkia alla olevia vaiheita ei kuitenkaan tarvitse suorittaa. Voit päättää, haluatko virallisesti tuetun LLVM & Clangin binaarisen vanhemman version vai uudemman version lähdekoodista, ja suorita mikä tahansa ohjeiden osio, joka sopii päätökseesi.

Asenna virallisesti tuettu (vanhempi) versio LLVM & Clangista

  1. TÄRKEÄ! Asenna ensin virallisesti tuettu (vanhempi) GCC-versio suorittamalla artikkelin GCC:n asentaminen CentOS 6:een vaiheet – sinun EI tarvitse suorittaa vaiheita artikkelin otsikossa "Asenna uudempi versio GCC:stä lähteestä" ".

  2. Asenna LLVM & Clang

    sudo yum install clang
        --- This will bring in llvm as a dependency
    
  3. Tarkista asennetut versiot ja katso niiden sijainnit.

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

Asenna LLVM & Clangin uudempi versio lähteestä

Jotta voit rakentaa LLVM & Clangin lähteen mukaan CentOS:ssä, sinulla on oltava GCC v4.7 tai uudempi. CentOS 6:n yum-versio ei ole näin korkea, joten sinun on ensin asennettava uudempi GCC lähdekoodista.

  1. TÄRKEÄ! Asenna ensin GCC:n uudempi versio lähteestä suorittamalla artikkelin GCC:n asentaminen CentOS 6:een vaiheet – sinun on suoritettava kaikki artikkelin vaiheet, mukaan lukien otsikon "Asenna uudempi GCC-versio lähde".

  2. Asenna tarvittavat lisäpaketit.

    sudo yum install cmake
    
  3. Asenna Pythonin uudempi versio. LLVM & Clang v3.6.0 vaatii Python v2.7+:n, mutta CentOS 6 yum -varastossa on vain 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. Päätä, minkä version LLVM & Clangista haluat. Tämä komento näyttää saatavilla olevien versioiden "tunnisteet".

    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. Hanki haluamasi LLVM & Clang -version lähde. Tämä kestää muutaman minuutin. Tämän artikkelin loput on kirjoitettu RELEASE_360/ja ladataan lähteet ~/sourceInstallations/llvm_RELEASE_360/-- Sinun on korvattava oikea tunniste, jotta se sopii tuleviin versioihin. Alla olevat hakemistot compiler-rt, libcxx, ja libcxxabieivät ole ehdottoman välttämättömiä, mutta sisältävät joitain LLVM & Clangin ominaisuuksia, joita GCC ei, joten ne sisältyvät tähän artikkeliin. Voit valita myös muita LLVM:n "aliprojekteja", kuten dragonegg, LLDB, OpenMB, vmkit, polly, libclc, klee, SAFECode ja lld. Voit lukea niistä LLVM:n verkkosivuilta .

    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. Rakenna LLVM & Clang. Tämä kestää jonkin aikaa. Jos tämä valmistuu oikein, viimeisellä näkemäsi rivillä lukee "menestys". On normaalia, että jotkut virheen näköiset viestit vierivät ohi nopeasti. On aina hyvä idea rakentaa asiat eri hakemistoon kuin lähdehakemistoon.

    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. Tarkista asennetut versiot ja katso niiden sijainnit.

    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. Lisää uudet kirjastot ld:hen (GNU-linkkeri).

    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. Vaihtoehtoisesti voit tehdä "hello world" -ohjelman.

    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. Käytä LLVM & Clangia milloin haluat.

    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. Valinnaisesti vapauttaa kiintolevytilaa. Oman ~/sourceInstallationskansion aloittamisesta noin 11FI levytilaa. Kansiot on luultavasti viisasta säilyttää, koska on olemassa valinnaisia ​​konfigurointivaihtoehtoja, joita saatat joutua käyttämään jossain vaiheessa tulevaisuudessa, ja olisi nopeampaa, jos paljon olisi jo tehty. Ja kuten yllä mainittiin, LLVM & Clangiin voit lisätä muita "aliprojekteja". Lisäksi rakennusprosessi tekee lokeja, joita voit myöhemmin tarkistaa ja käyttää, jos jokin menee pieleen. Mutta kun olet suorittanut "sudo make install" aiemmin, asennettu LLVM & Clang ei ole riippuvainen mistään tässä hakemistossa, ja tilaa voi olla paljon, joten voit tehdä tämän vaiheen ja lunastaa 11 Gt takaisin.

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

Sinulla on nyt uudempi LLVM & Clang -tiedostosi /usr/local/bin, uudempi 64-bittinen LLVM & Clang -libsi /usr/local/libja uudempi LLVM & Clang sisältävät tiedostot muodossa /usr/local/include.


Asenna Plesk CentOS 7:ään

Asenna Plesk CentOS 7:ään

Käytätkö erilaista järjestelmää? Plesk on patentoitu verkkoisäntäohjauspaneeli, jonka avulla käyttäjät voivat hallita henkilökohtaisia ​​ja/tai asiakkaidensa verkkosivustoja, tietokantoja

Kuinka asentaa Squid Proxy CentOS:ään

Kuinka asentaa Squid Proxy CentOS:ään

Squid on suosittu, ilmainen Linux-ohjelma, jonka avulla voit luoda edelleenlähetysverkkovälityspalvelimen. Tässä oppaassa näet, kuinka Squid asennetaan CentOS:ään kääntääksesi sinut

Lighttpd:n (LLMP Stack) asentaminen CentOS 6:een

Lighttpd:n (LLMP Stack) asentaminen CentOS 6:een

Johdanto Lighttpd on Apachen haarukka, jonka tarkoituksena on olla paljon vähemmän resurssiintensiivinen. Se on kevyt, tästä syystä sen nimi, ja on melko yksinkertainen käyttää. Asenna

Staattisen verkon ja IPv6:n määrittäminen CentOS 7:ssä

Staattisen verkon ja IPv6:n määrittäminen CentOS 7:ssä

VULTR on äskettäin tehnyt muutoksia heidän omiinsa, ja kaiken pitäisi nyt toimia hyvin heti, kun NetworkManager on käytössä. Jos haluat poistaa käytöstä

Icinga2:n muokkaaminen käyttämään pää/asiakasmallia CentOS 6:ssa tai CentOS 7:ssä

Icinga2:n muokkaaminen käyttämään pää/asiakasmallia CentOS 6:ssa tai CentOS 7:ssä

Icinga2 on tehokas valvontajärjestelmä, ja master-client-mallissa käytettynä se voi korvata NRPE-pohjaisten valvontatarkastusten tarpeen. Pääasiakas

Apache Cassandra 3.11.x:n asentaminen CentOS 7:ään

Apache Cassandra 3.11.x:n asentaminen CentOS 7:ään

Käytätkö erilaista järjestelmää? Apache Cassandra on ilmainen ja avoimen lähdekoodin NoSQL-tietokannan hallintajärjestelmä, joka on suunniteltu tarjoamaan skaalautuvuutta, hig.

Kuinka asentaa Microweber CentOS 7:ään

Kuinka asentaa Microweber CentOS 7:ään

Käytätkö erilaista järjestelmää? Microweber on avoimen lähdekoodin vedä ja pudota sisällönhallintajärjestelmä ja verkkokauppa. Microweber-lähdekoodia isännöidään GitHubissa. Tämä opas näyttää sinulle

Mattermost 4.1:n asentaminen CentOS 7:ään

Mattermost 4.1:n asentaminen CentOS 7:ään

Käytätkö erilaista järjestelmää? Mattermost on avoimen lähdekoodin itseisännöity vaihtoehto Slack SAAS -viestipalvelulle. Toisin sanoen Mattermostin avulla voit noin

Minecraft-palvelinverkon luominen BungeeCordilla Debian 8:ssa, Debian 9:ssä tai CentOS 7:ssä

Minecraft-palvelinverkon luominen BungeeCordilla Debian 8:ssa, Debian 9:ssä tai CentOS 7:ssä

Mitä tarvitset Vultr VPS:n, jossa on vähintään 1 Gt RAM-muistia. SSH-käyttö (pääkäyttäjän/järjestelmänvalvojan oikeuksilla). Vaihe 1: BungeeCordin asentaminen Ensimmäiset asiat ensin

Sallii salauksen Pleskissä

Sallii salauksen Pleskissä

Plesk-ohjauspaneelissa on erittäin mukava integraatio Lets Encryptille. Lets Encrypt on yksi ainoista SSL-palveluntarjoajista, jotka myöntävät varmenteita täydellisesti

Sallii salauksen cPanelissa

Sallii salauksen cPanelissa

Lets Encrypt on varmenneviranomainen, joka on omistautunut tarjoamaan SSL-varmenteita ilmaiseksi. cPanel on rakentanut siistin integraation sinulle ja asiakkaallesi

Kuinka asentaa Concrete5 CentOS 7:ään

Kuinka asentaa Concrete5 CentOS 7:ään

Käytätkö erilaista järjestelmää? Concrete5 on avoimen lähdekoodin sisällönhallintajärjestelmä, joka tarjoaa monia ainutlaatuisia ja hyödyllisiä ominaisuuksia, jotka auttavat toimittajia tuottamaan sisältöä helposti ja helposti.

Review Boardin asentaminen CentOS 7:ään

Review Boardin asentaminen CentOS 7:ään

Käytätkö erilaista järjestelmää? Review Board on ilmainen ja avoimen lähdekoodin työkalu lähdekoodin, dokumentaation, kuvien ja monien muiden tarkistamiseen. Se on web-pohjainen ohjelmisto

Asenna HTTP-todennus Nginxillä CentOS 7:ssä

Asenna HTTP-todennus Nginxillä CentOS 7:ssä

Tässä oppaassa opit määrittämään HTTP-todennuksen Nginx-verkkopalvelimelle, joka toimii CentOS 7:ssä. Vaatimukset Aloitaksesi tarvitset

Kuinka asentaa YOURLS CentOS 7:ään

Kuinka asentaa YOURLS CentOS 7:ään

YOURLS (Your Own URL Shortener) on avoimen lähdekoodin URL-osoitteiden lyhennys- ja data-analytiikkasovellus. Tässä artikkelissa käsittelemme asennusprosessia

Kuinka asentaa ja määrittää ArangoDB CentOS 7: ssä

Kuinka asentaa ja määrittää ArangoDB CentOS 7: ssä

Käytätkö erilaista järjestelmää? Johdanto ArangoDB on avoimen lähdekoodin NoSQL-tietokanta, jossa on joustava tietomalli asiakirjoille, kaavioille ja avainarvoille. se on

Etckeeperin käyttäminen /etc-version hallintaan

Etckeeperin käyttäminen /etc-version hallintaan

Johdanto /etc/-hakemistolla on tärkeä rooli Linux-järjestelmän toiminnassa. Syynä tähän on se, että lähes kaikki järjestelmäkokoonpanot

Miksi sinun pitäisi käyttää SSHFS:ää? Kuinka asentaa etätiedostojärjestelmä SSHFS:llä CentOS 6:ssa

Miksi sinun pitäisi käyttää SSHFS:ää? Kuinka asentaa etätiedostojärjestelmä SSHFS:llä CentOS 6:ssa

Monet järjestelmänvalvojat hallitsevat suuria määriä palvelimia. Kun tiedostoja on käytettävä eri palvelimien kautta, kirjaudu jokaiseen erikseen n

Half Life 2 -palvelimen määrittäminen CentOS 6:lle

Half Life 2 -palvelimen määrittäminen CentOS 6:lle

Tämä opetusohjelma kattaa Half Life 2 -pelipalvelimen asennuksen CentOS 6 -järjestelmään. Vaihe 1: Edellytysten asentaminen Voit määrittää ou

Kuinka asentaa Laravel GitScrum CentOS 7:ään

Kuinka asentaa Laravel GitScrum CentOS 7:ään

Laravel GitScrum tai GitScrum on avoimen lähdekoodin tuottavuustyökalu, joka on suunniteltu auttamaan kehitysryhmiä ottamaan käyttöön Scrum-metodologian samalla tavalla.

Koneiden nousu: tekoälyn todelliset sovellukset

Koneiden nousu: tekoälyn todelliset sovellukset

Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.

DDOS-hyökkäykset: lyhyt katsaus

DDOS-hyökkäykset: lyhyt katsaus

Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, ​​että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja