Hvernig á að setja upp LLVM og Clang á CentOS 6

Hvernig á að setja upp LLVM og Clang á CentOS 6

LLVM er opinn uppspretta þýðandainnviði. LLVM var byrjað árið 2000 og hefur verið mikið notað og breytt af Apple síðan 2005. Clang er C, C++, Objective-C og Objective-C++ þýðandi sem vinnur með LLVM kerfinu. Clang var stofnað árið 2007 af Apple og síðan þá hafa Google og Intel tekið þátt í áframhaldandi þróun þess.

Hönnuðir Clang halda því fram að í samanburði við GCC sé það samsett hraðar, notar minna minni, veitir notendavænni greiningu við samantekt og sé samhæft við GCC.

CentOS fylgir þróun Red Hat Enterprise Linux (RHEL). RHEL leitast við að vera stöðugur netþjónsvettvangur, sem þýðir að það flýtir ekki fyrir að innihalda nýjustu útgáfur af öllu.

Þegar þessi grein er skrifuð dreifir CentOS 6 opinberlega LLVM & Clang v3.4.2. Hins vegar hefur Clang v3.6 verið gefin út.

Opinbera tillagan er að ef þú þarft nýrri útgáfu af LLVM & Clang, ættir þú að íhuga aðra UNIX dreifingu sem leggur meiri áherslu á að styðja nýjustu útgáfur af hugbúnaðarpökkum.

Sem betur fer geturðu sett upp nýrri útgáfu LLVM & Clang GCC á CentOS. Þetta víkur eingöngu frá því að nota opinberlega dreifða hugbúnaðinn, en stundum getur þér fundist þú hafa lítið val.

Þessi grein lýsir því hvernig á að setja upp CentOS 6 opinberlega studda útgáfu af LLVM & Clang og hvernig á að setja upp nýrri útgáfu. Þessi grein gerir ráð fyrir að þú sért með nýuppsett CentOS 6 VPS, en þú getur vissulega fylgst með leiðbeiningunum á VPS sem þú hefur þegar notað.

Clang er að mestu óháð GCC, en þegar þessi grein er skrifuð notar Clang enn nokkur sameiginleg bókasöfn sem GCC hefur sett upp (þ.e. crtbegin.o, gcc, og gcc_s). Ef þú setur upp LLVM & Clang á CentOS 6 muntu ekki geta sett neitt saman ef þú ert ekki líka með GCC á kerfinu þínu fyrir þessi sameiginlegu bókasöfn. Helst væri yum háð pakka fyrir clang af gcc og gcc-c++, en þegar þessi grein er skrifuð er yum ekki meðvituð um ósjálfstæðin.

Að auki, að byggja upp nýrri útgáfu af LLVM & Clang frá uppruna krefst G++ v4.7+, sem þú getur aðeins fengið á CentOS 6 með því að setja það upp eftir uppruna.

Ef þú keyrir öll skrefin hér að neðan muntu fá 2 útgáfur af GCC og 2 útgáfur af LLVM & Clang. Þetta felur í sér opinberlega studda eldri tvöfalda útgáfu og nýrri útgáfu frá uppruna fyrir hvert forrit. Hins vegar er engin þörf á að keyra öll skrefin hér að neðan. Þú getur ákveðið hvort þú viljir opinberlega studdu tvöfalda eldri útgáfuna af LLVM & Clang, eða nýrri útgáfuna frá uppruna, og keyrt hvaða hluta leiðbeininganna sem hentar ákvörðun þinni.

Settu upp opinberlega studda (eldri) útgáfu af LLVM & Clang

  1. MIKILVÆGT! Settu fyrst upp opinberlega studda (eldri) útgáfu af GCC, með því að framkvæma skrefin í greininni Hvernig á að setja upp GCC á CentOS 6 -- þú þarft EKKI að framkvæma skrefin undir fyrirsögn greinarinnar "Setja upp nýrri útgáfu af GCC frá uppruna ".

  2. Settu upp LLVM & Clang

    sudo yum install clang
        --- This will bring in llvm as a dependency
    
  3. Athugaðu uppsettu útgáfurnar og sjáðu staðsetningu þeirra.

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

Settu upp nýrri útgáfu af LLVM & Clang frá uppruna

Til að byggja LLVM & Clang eftir uppruna á CentOS þarftu að hafa GCC v4.7 eða nýrri. CentOS 6 er ekki með þessa háu útgáfu í yum, svo þú verður fyrst að setja upp nýrri GCC frá uppruna.

  1. MIKILVÆGT! Settu fyrst upp nýrri útgáfu af GCC frá uppruna, með því að framkvæma skrefin í greininni Hvernig á að setja upp GCC á CentOS 6 -- þú þarft að framkvæma öll skref í þeirri grein, þar á meðal undir fyrirsögninni "Setja upp nýrri útgáfu af GCC frá heimild“.

  2. Settu upp viðbótar nauðsynlega pakka.

    sudo yum install cmake
    
  3. Settu upp nýrri útgáfu af Python. LLVM & Clang v3.6.0 krefst Python v2.7+, en CentOS 6 yum geymslan hefur aðeins 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. Ákveðið hvaða útgáfu af LLVM & Clang þú vilt. Þessi skipun mun sýna þér „merki“ fyrir þær útgáfur sem til eru.

    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. Fáðu uppruna útgáfunnar af LLVM & Clang sem þú vilt. Þetta mun keyra í nokkrar mínútur. Restin af þessari grein er skrifuð fyrir RELEASE_360/og mun hlaða niður heimildum í ~/sourceInstallations/llvm_RELEASE_360/-- Þú verður að skipta út réttu merki til að passa í framtíðarútgáfur. Möppurnar hér að neðan af compiler-rt, libcxx, og libcxxabieru ekki algerlega nauðsynlegar, en innihalda nokkra af þeim eiginleikum sem LLVM & Clang hafa sem GCC hefur ekki, svo eru innifalin í þessari grein. Það eru önnur LLVM „undirverkefni“ sem þú gætir valið að nota, svo sem dragonegg, LLDB, OpenMB, vmkit, polly, libclc, klee, SAFECode og lld. Þú getur lesið um þær á heimasíðu 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. Byggja LLVM & Clang. Þetta mun keyra um stund. Ef þetta klárast á réttan hátt mun síðasta línan sem þú sérð segja "árangur". Það er eðlilegt að sjá villuskilaboð fletta hratt framhjá. Það er alltaf góð hugmynd að byggja hluti í annarri möppu en upprunaskrá.

    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. Athugaðu uppsettu útgáfurnar og sjáðu staðsetningu þeirra.

    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. Bættu nýju söfnunum við ld (GNU tengilinn).

    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. Gerðu valfrjálst "halló heimur" forrit.

    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. Notaðu LLVM & Clang þegar þú vilt.

    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. Mögulega endurheimta pláss á harða disknum. Þín ~/sourceInstallationsmappa verður að taka upp í kringum 11GB af diskur rúm. Líklega er skynsamlegt að geyma möppurnar, þar sem það eru valfrjálsir stillingarvalkostir sem þú gætir þurft að nota einhvern tíma í framtíðinni og það væri fljótlegra að hafa mikið gert nú þegar. Og eins og nefnt er hér að ofan eru fleiri „undirverkefni“ sem þú getur bætt við LLVM & Clang. Byggingarferlið gerir líka annála sem þú getur síðar athugað og unnið úr ef eitthvað fer úrskeiðis. En eftir að hafa keyrt „sudo make install“ fyrr, þá er uppsett LLVM & Clang ekki háð neinu í þessari möppu og plássið getur verið á aukagjaldi, svo þú getur gert þetta skref og endurheimt 11GB.

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

Þú ert nú með nýrri LLVM & Clang í /usr/local/bin, nýrri 64-bita LLVM & Clang libs í /usr/local/lib, og nýrri LLVM & Clang innihalda skrár í /usr/local/include.


Settu upp Plesk á CentOS 7

Settu upp Plesk á CentOS 7

Að nota annað kerfi? Plesk er sérstakt stjórnborð fyrir vefþjón sem gerir notendum kleift að stjórna persónulegum og/eða viðskiptavinum vefsíðum sínum, gagnagrunnum

Hvernig á að setja upp Squid Proxy á CentOS

Hvernig á að setja upp Squid Proxy á CentOS

Smokkfiskur er vinsælt, ókeypis Linux forrit sem gerir þér kleift að búa til framsendingarforrit á vefnum. Í þessari handbók muntu sjá hvernig á að setja upp Squid á CentOS til að snúa þér

Hvernig á að setja upp Lighttpd (LLMP Stack) á CentOS 6

Hvernig á að setja upp Lighttpd (LLMP Stack) á CentOS 6

Inngangur Lighttpd er gaffal af Apache sem miðar að því að vera miklu minna auðlindafrekt. Hann er léttur, þess vegna heitir hann, og er frekar einfaldur í notkun. Uppsetning

Stilla Static Networking og IPv6 á CentOS 7

Stilla Static Networking og IPv6 á CentOS 7

VULTR hefur nýlega gert breytingar á enda þeirra og allt ætti nú að virka vel út úr kassanum með NetworkManager virkt. Ef þú vilt slökkva á

Breytir Icinga2 til að nota Master/Client Model á CentOS 6 eða CentOS 7

Breytir Icinga2 til að nota Master/Client Model á CentOS 6 eða CentOS 7

Icinga2 er öflugt eftirlitskerfi og þegar það er notað í aðal-viðskiptavinamódel getur það komið í stað þörf fyrir NRPE-undirstaða vöktunareftirlit. Húsbóndinn

Hvernig á að setja upp Apache Cassandra 3.11.x á CentOS 7

Hvernig á að setja upp Apache Cassandra 3.11.x á CentOS 7

Að nota annað kerfi? Apache Cassandra er ókeypis og opinn uppspretta NoSQL gagnagrunnsstjórnunarkerfi sem er hannað til að veita sveigjanleika, háan

Hvernig á að setja upp Microweber á CentOS 7

Hvernig á að setja upp Microweber á CentOS 7

Að nota annað kerfi? Microweber er opinn uppspretta draga og sleppa CMS og netverslun. Microweber frumkóði er hýst á GitHub. Þessi handbók mun sýna þér

Hvernig á að setja upp Mattermost 4.1 á CentOS 7

Hvernig á að setja upp Mattermost 4.1 á CentOS 7

Að nota annað kerfi? Mattermost er opinn uppspretta, sjálfhýst valkostur við Slack SAAS skilaboðaþjónustuna. Með öðrum orðum, með Mattermost, þú ca

Að búa til net Minecraft netþjóna með BungeeCord á Debian 8, Debian 9 eða CentOS 7

Að búa til net Minecraft netþjóna með BungeeCord á Debian 8, Debian 9 eða CentOS 7

Það sem þú þarft Vultr VPS með að minnsta kosti 1GB af vinnsluminni. SSH aðgangur (með rót / stjórnunarréttindi). Skref 1: Uppsetning BungeeCord Fyrst af öllu

Láttu dulkóða á Plesk

Láttu dulkóða á Plesk

Plesk stjórnborðið er með mjög fallegri samþættingu fyrir Lets Encrypt. Lets Encrypt er ein af einu SSL veitunum sem gefa út skírteini að fullu

Láttu dulkóða á cPanel

Láttu dulkóða á cPanel

Lets Encrypt er vottunaryfirvöld sem sérhæfir sig í að útvega SSL vottorð án endurgjalds. cPanel hefur byggt upp snyrtilega samþættingu svo þú og viðskiptavinurinn þinn

Hvernig á að setja upp Concrete5 á CentOS 7

Hvernig á að setja upp Concrete5 á CentOS 7

Að nota annað kerfi? Concrete5 er opinn uppspretta CMS sem býður upp á marga áberandi og gagnlega eiginleika til að aðstoða ritstjóra við að framleiða efni auðveldlega og

Hvernig á að setja upp Review Board á CentOS 7

Hvernig á að setja upp Review Board á CentOS 7

Að nota annað kerfi? Review Board er ókeypis og opinn hugbúnaður til að skoða frumkóða, skjöl, myndir og margt fleira. Það er vefbundið hugbúnaðarstríð

Settu upp HTTP auðkenningu með Nginx á CentOS 7

Settu upp HTTP auðkenningu með Nginx á CentOS 7

Í þessari handbók munt þú læra hvernig á að setja upp HTTP auðkenningu fyrir Nginx vefþjón sem keyrir á CentOS 7. Kröfur Til að byrja þarftu að

Hvernig á að setja upp YOURLS á CentOS 7

Hvernig á að setja upp YOURLS á CentOS 7

YOURLS (Your Own URL Shortener) er opinn uppspretta vefslóða styttingar og gagnagreiningarforrit. Í þessari grein munum við fjalla um ferlið við uppsetningu

How to Install and Configure ArangoDB on CentOS 7

How to Install and Configure ArangoDB on CentOS 7

Using a Different System? Introduction ArangoDB is an open source NoSQL database with a flexible data model for documents, graphs, and key-values. It is

Notkun Etckeeper fyrir útgáfustýringu á /etc

Notkun Etckeeper fyrir útgáfustýringu á /etc

Inngangur /etc/ skrárinn gegnir mikilvægu hlutverki í því hvernig Linux kerfi virkar. Ástæðan fyrir þessu er sú að næstum allar kerfisstillingar

Af hverju ættir þú að nota SSHFS? Hvernig á að tengja fjarskráarkerfi með SSHFS á CentOS 6

Af hverju ættir þú að nota SSHFS? Hvernig á að tengja fjarskráarkerfi með SSHFS á CentOS 6

Margir kerfisstjórar stjórna miklu magni af netþjónum. Þegar aðgangur þarf að skrám á mismunandi netþjónum er innskráning á hvern og einn fyrir sig ca

Setja upp Half Life 2 Server á CentOS 6

Setja upp Half Life 2 Server á CentOS 6

Þessi kennsla mun fjalla um ferlið við að setja upp Half Life 2 leikjaþjón á CentOS 6 System. Skref 1: Forsendur settar upp Til að setja upp ou

Hvernig á að setja upp Laravel GitScrum á CentOS 7

Hvernig á að setja upp Laravel GitScrum á CentOS 7

Laravel GitScrum, eða GitScrum er opinn uppspretta framleiðniverkfæri hannað til að hjálpa þróunarteymi að innleiða Scrum aðferðafræðina á svipaðan hátt

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Gervigreind er ekki í framtíðinni, hún er hér í nútímanum Í þessu bloggi Lestu hvernig gervigreindarforrit hafa haft áhrif á ýmsa geira.

DDOS árásir: Stutt yfirlit

DDOS árásir: Stutt yfirlit

Ertu líka fórnarlamb DDOS árása og ruglaður með forvarnaraðferðirnar? Lestu þessa grein til að leysa spurningar þínar.

Hefur þú einhvern tíma velt því fyrir þér hvernig tölvuþrjótar græða peninga?

Hefur þú einhvern tíma velt því fyrir þér hvernig tölvuþrjótar græða peninga?

Þú gætir hafa heyrt að tölvuþrjótar græða mikið af peningum, en hefur þú einhvern tíma velt því fyrir þér hvernig þeir vinna sér inn svona peninga? við skulum ræða.

Byltingarkenndar uppfinningar frá Google sem munu auðvelda lífi þínu.

Byltingarkenndar uppfinningar frá Google sem munu auðvelda lífi þínu.

Viltu sjá byltingarkenndar uppfinningar frá Google og hvernig þessar uppfinningar breyttu lífi hvers manns í dag? Lestu síðan til að blogga til að sjá uppfinningar frá Google.

Föstudagur Nauðsynlegur: Hvað varð um gervigreindardrifna bíla?

Föstudagur Nauðsynlegur: Hvað varð um gervigreindardrifna bíla?

Hugmyndin um að sjálfkeyrandi bílar fari á göturnar með hjálp gervigreindar er draumur sem við höfum átt um tíma núna. En þrátt fyrir nokkur loforð eru þau hvergi sjáanleg. Lestu þetta blogg til að læra meira…

Tæknileg sérkenni: Fjarlæg framtíð mannlegrar siðmenningar?

Tæknileg sérkenni: Fjarlæg framtíð mannlegrar siðmenningar?

Þar sem vísindin þróast hratt og taka yfir mikið af viðleitni okkar, eykst hættan á því að verða fyrir óútskýranlegri einstæðu. Lestu, hvað sérkenni gæti þýtt fyrir okkur.

Þróun gagnageymslu – Infographic

Þróun gagnageymslu – Infographic

Geymsluaðferðir gagna hafa verið að þróast gæti verið frá fæðingu gagna. Þetta blogg fjallar um þróun gagnageymslu á grundvelli upplýsingamynda.

Virkni Big Data Reference Architecture Layers

Virkni Big Data Reference Architecture Layers

Lestu bloggið til að þekkja mismunandi lög í Big Data Architecture og virkni þeirra á einfaldasta hátt.

6 ótrúlegir kostir þess að hafa snjall heimilistæki í lífi okkar

6 ótrúlegir kostir þess að hafa snjall heimilistæki í lífi okkar

Í þessum stafræna heimi hafa snjallheimilistæki orðið afgerandi hluti af lífi. Hér eru nokkrir ótrúlegir kostir snjallheimatækja um hvernig þau gera líf okkar þess virði að lifa því og einfaldara.

macOS Catalina 10.15.4 viðbót uppfærsla veldur fleiri vandamálum en að leysa

macOS Catalina 10.15.4 viðbót uppfærsla veldur fleiri vandamálum en að leysa

Nýlega gaf Apple út macOS Catalina 10.15.4 viðbótaruppfærslu til að laga vandamál en svo virðist sem uppfærslan sé að valda fleiri vandamálum sem leiða til múrsteins á Mac vélum. Lestu þessa grein til að læra meira