Kaip įdiegti LLVM ir Clang CentOS 6

Kaip įdiegti LLVM ir Clang CentOS 6

LLVM yra atvirojo kodo kompiliatoriaus infrastruktūra. LLVM buvo pradėtas naudoti 2000 m., o Apple jį plačiai naudoja ir modifikavo nuo 2005 m. Clang yra C, C++, Objective-C ir Objective-C++ kompiliatorius, veikiantis su LLVM sistema. „Clang“ 2007 m. įkūrė „Apple“, o nuo tada „Google“ ir „Intel“ įsitraukė į nuolatinį jos kūrimą.

„Clang“ kūrėjai teigia, kad, palyginti su GCC, jis kompiliuoja greičiau, naudoja mažiau atminties, suteikia patogesnę diagnostiką kompiliavimo metu ir yra suderinamas su GCC.

„CentOS“ seka „Red Hat Enterprise Linux“ (RHEL) kūrimą. RHEL siekia būti stabilia serverio platforma, o tai reiškia, kad neskuba įtraukti naujausių visko versijų.

Nuo šio straipsnio rašymo „CentOS 6“ oficialiai platina LLVM & Clang v3.4.2. Tačiau Clang v3.6 buvo išleistas.

Oficialus pasiūlymas yra toks: jei jums reikia naujesnės LLVM & Clang versijos, turėtumėte apsvarstyti kitokį UNIX platinimą, kuris yra labiau orientuotas į naujausių programinės įrangos paketų versijų palaikymą.

Laimei, CentOS galite įdiegti naujesnę LLVM & Clang GCC versiją. Tai nukrypsta nuo vien tik oficialiai platinamos programinės įrangos naudojimo, tačiau kartais gali atrodyti, kad neturite mažai pasirinkimo.

Šiame straipsnyje aprašoma, kaip įdiegti CentOS 6 oficialiai palaikomą LLVM & Clang versiją ir kaip įdiegti naujesnę versiją. Šiame straipsnyje daroma prielaida, kad turite naujai įdiegtą CentOS 6 VPS, tačiau tikrai galite vadovautis jau naudojamo VPS instrukcijomis.

„Clang“ iš esmės nepriklauso nuo GCC, tačiau nuo šio straipsnio rašymo „Clang“ vis dar naudoja kelias bendrai naudojamas bibliotekas, įdiegtas GCC (būtent crtbegin.o, gcc, ir gcc_s). Jei įdiegsite LLVM & Clang CentOS 6, negalėsite nieko kompiliuoti, jei savo sistemoje taip pat neturite GCC šioms bendrinamoms bibliotekoms. Idealiu atveju yum būtų priklausomas nuo paketo gcc ir gcc-c++, tačiau šio straipsnio rašymo metu yum šios priklausomybės nežino.

Be to, norint sukurti naujesnę LLVM & Clang versiją iš šaltinio, reikalinga G++ v4.7+, kurią galite gauti tik naudodami CentOS 6, įdiegę ją pagal šaltinį.

Jei atliksite visus toliau nurodytus veiksmus, turėsite 2 GCC versijas ir 2 LLVM & Clang versijas. Tai apima oficialiai palaikomą dvejetainę senesnę versiją ir naujesnę kiekvienos programos versiją iš šaltinio. Tačiau nereikia atlikti visų toliau nurodytų veiksmų. Galite nuspręsti, ar norite oficialiai palaikomos dvejetainės senesnės LLVM & Clang versijos, ar naujesnės versijos iš šaltinio, ir paleisti bet kurią instrukcijų dalį, kuri atitinka jūsų sprendimą.

Įdiekite oficialiai palaikomą (senesnę) LLVM & Clang versiją

  1. SVARBU! Pirma, įdiekite oficialiai palaikomą (senesnę) GCC versiją, atlikdami veiksmus, nurodytus straipsnyje Kaip įdiegti GCC CentOS 6 – jums NEREIKIA atlikti veiksmų, pateiktų to straipsnio antraštėje „Įdiegti naujesnę GCC versiją iš šaltinio “.

  2. Įdiekite LLVM & Clang

    sudo yum install clang
        --- This will bring in llvm as a dependency
    
  3. Patikrinkite įdiegtas versijas ir peržiūrėkite jų vietas.

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

Įdiekite naujesnę LLVM & Clang versiją iš šaltinio

Norėdami sukurti LLVM & Clang pagal šaltinį CentOS sistemoje, turite turėti GCC 4.7 arba naujesnę versiją. CentOS 6 nėra tokios aukštos „yum“ versijos, todėl pirmiausia turite įdiegti naujesnę GCC iš šaltinio.

  1. SVARBU! Pirmiausia įdiekite naujesnę GCC versiją iš šaltinio, atlikdami veiksmus, nurodytus straipsnyje Kaip įdiegti GCC sistemoje CentOS 6 – turite atlikti visus tame straipsnyje nurodytus veiksmus, įskaitant antraštę „Įdiegti naujesnę GCC versiją iš šaltinis“.

  2. Įdiekite papildomai reikalingus paketus.

    sudo yum install cmake
    
  3. Įdiekite naujesnę Python versiją. LLVM ir Clang v3.6.0 reikia Python v2.7+, bet CentOS 6 yum saugykloje yra tik 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. Nuspręskite, kurios LLVM & Clang versijos norite. Ši komanda parodys galimų versijų „žymas“.

    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. Gaukite norimos LLVM & Clang versijos šaltinį. Tai veiks keletą minučių. Likusi šio straipsnio dalis skirta RELEASE_360/ir šaltiniai bus atsisiunčiami į ~/sourceInstallations/llvm_RELEASE_360/-- Turėsite pakeisti tinkamą žymą, kad ji atitiktų būsimas versijas. Žemiau esantys compiler-rt, libcxx, ir katalogai libcxxabinėra absoliučiai būtini, tačiau juose yra keletas LLVM & Clang funkcijų, kurių neturi GCC, todėl jos yra įtrauktos į šį straipsnį. Yra ir kitų LLVM „antrinių projektų“, kuriuos galite naudoti, pvz., dragonegg, LLDB, OpenMB, vmkit, polly, libclc, klee, SAFECode ir lld. Apie juos galite perskaityti LLVM svetainėje .

    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. Sukurkite LLVM & Clang. Tai veiks kurį laiką. Jei tai bus atlikta teisingai, paskutinėje eilutėje, kurią pamatysite, bus nurodyta „sėkmė“. Normalu, kad kai kurie klaidos pranešimai greitai slenka. Visada yra gera idėja kurti dalykus kitame kataloge nei šaltinio katalogas.

    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. Patikrinkite įdiegtas versijas ir peržiūrėkite jų vietas.

    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. Pridėkite naujas bibliotekas prie ld (GNU nuoroda).

    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. Pasirinktinai sukurkite programą „labas pasaulis“.

    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. Kai norite, naudokite LLVM & Clang.

    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. Pasirinktinai atlaisvinkite vietos standžiajame diske. Jūsų ~/sourceInstallationsaplankas užims apie 11 GB vietos diske. Tikriausiai būtų protinga pasilikti aplankus, nes yra pasirenkamų konfigūravimo parinkčių, kurias gali prireikti naudoti kada nors ateityje, ir būtų greičiau, jei daug ką jau padarytumėte. Ir, kaip minėta pirmiau, yra papildomų „subprojektų“, kuriuos galite pridėti prie LLVM & Clang. Be to, kūrimo procesas sukuria žurnalus, kuriuos vėliau galėsite patikrinti ir dirbti, jei kas nors negerai. Tačiau anksčiau paleidus „sudo make install“, jūsų įdiegtas LLVM & Clang nepriklauso nuo nieko šiame kataloge, o vietos gali būti labai daug, todėl galite atlikti šį veiksmą ir susigrąžinti 11 GB.

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

Dabar turite naujesnę LLVM & Clang versiją /usr/local/bin, naujesnę 64 bitų LLVM & Clang libsą /usr/local/lib, o naujesnėje LLVM & Clang įtraukėte failus į /usr/local/include.


Įdiekite „Plesk“ „CentOS 7“.

Įdiekite „Plesk“ „CentOS 7“.

Naudojate kitą sistemą? Plesk yra patentuotas žiniatinklio prieglobos valdymo skydelis, leidžiantis vartotojams administruoti savo asmenines ir (arba) klientų svetaines, duomenų bazes

Kaip įdiegti „Squid“ tarpinį serverį „CentOS“.

Kaip įdiegti „Squid“ tarpinį serverį „CentOS“.

Squid yra populiari nemokama „Linux“ programa, leidžianti sukurti persiuntimo žiniatinklio tarpinį serverį. Šiame vadove pamatysite, kaip įdiegti „Squid“ „CentOS“, kad paverstumėte jus

Kaip įdiegti „Lighttpd“ (LLMP Stack) „CentOS 6“.

Kaip įdiegti „Lighttpd“ (LLMP Stack) „CentOS 6“.

Įvadas Lighttpd yra „Apache“ šakutė, skirta daug mažiau išteklių imti. Jis yra lengvas, todėl jo pavadinimas ir yra gana paprastas naudoti. Įdiegti

Statinio tinklo ir IPv6 konfigūravimas CentOS 7

Statinio tinklo ir IPv6 konfigūravimas CentOS 7

VULTR neseniai atliko pakeitimus, ir dabar viskas turėtų veikti gerai, kai įjungta „NetworkManager“. Jei norite išjungti

„Icinga2“ modifikavimas, kad būtų naudojamas pagrindinis / kliento modelis „CentOS 6“ arba „CentOS 7“.

„Icinga2“ modifikavimas, kad būtų naudojamas pagrindinis / kliento modelis „CentOS 6“ arba „CentOS 7“.

Icinga2 yra galinga stebėjimo sistema, o kai naudojama pagrindinio kliento modelyje, ji gali pakeisti NRPE pagrįstų stebėjimo patikrų poreikį. Meistras-klientas

Kaip įdiegti „Apache Cassandra 3.11.x“ „CentOS 7“.

Kaip įdiegti „Apache Cassandra 3.11.x“ „CentOS 7“.

Naudojate kitą sistemą? Apache Cassandra yra nemokama ir atviro kodo NoSQL duomenų bazių valdymo sistema, skirta užtikrinti mastelio keitimą, hig.

Kaip įdiegti „Mattermost 4.1“ „CentOS 7“.

Kaip įdiegti „Mattermost 4.1“ „CentOS 7“.

Naudojate kitą sistemą? Mattermost yra atvirojo kodo, savarankiškai priglobta alternatyva Slack SAAS pranešimų paslaugai. Kitaip tariant, naudodami Mattermost, jūs apytiksliai

Leidžia šifruoti Plesk

Leidžia šifruoti Plesk

„Plesk“ valdymo skydelyje yra labai graži „Lets Encrypt“ integracija. „Lets Encrypt“ yra vienas iš vienintelių SSL teikėjų, išduodančių visus sertifikatus

Leidžia šifruoti „cPanel“.

Leidžia šifruoti „cPanel“.

„Lets Encrypt“ yra sertifikatų institucija, skirta nemokamai teikti SSL sertifikatus. cPanel sukūrė tvarkingą integraciją, kad jūs ir jūsų klientas

Kaip įdiegti „Concrete5“ „CentOS 7“.

Kaip įdiegti „Concrete5“ „CentOS 7“.

Naudojate kitą sistemą? Concrete5 yra atvirojo kodo TVS, kuri siūlo daug išskirtinių ir naudingų funkcijų, padedančių redaktoriams lengvai sukurti turinį

Kaip įdiegti apžvalgos lentą „CentOS 7“.

Kaip įdiegti apžvalgos lentą „CentOS 7“.

Naudojate kitą sistemą? „Review Board“ yra nemokamas atvirojo kodo įrankis, skirtas šaltinio kodui, dokumentacijai, vaizdams ir daugeliui kitų peržiūrėti. Tai internetinė programinė įranga

Nustatykite HTTP autentifikavimą naudodami „Nginx“ „CentOS 7“.

Nustatykite HTTP autentifikavimą naudodami „Nginx“ „CentOS 7“.

Šiame vadove sužinosite, kaip nustatyti HTTP autentifikavimą Nginx žiniatinklio serveriui, kuriame veikia CentOS 7. Reikalavimai Norėdami pradėti, jums reikės

Kaip įdiegti YOURLS „CentOS 7“.

Kaip įdiegti YOURLS „CentOS 7“.

YOURLS (Your Own URL Shortener) yra atvirojo kodo URL sutrumpinimo ir duomenų analizės programa. Šiame straipsnyje apžvelgsime diegimo procesą

Kaip įdiegti ir konfigūruoti „ArangoDB“ „CentOS 7“.

Kaip įdiegti ir konfigūruoti „ArangoDB“ „CentOS 7“.

Naudojate kitą sistemą? Įvadas ArangoDB yra atvirojo kodo NoSQL duomenų bazė su lanksčiu duomenų modeliu dokumentams, grafikams ir raktų reikšmėms. tai yra

Etckeeper naudojimas versijai valdyti /etc

Etckeeper naudojimas versijai valdyti /etc

Įvadas Katalogas /etc/ vaidina lemiamą vaidmenį veikiant Linux sistemai. Taip yra todėl, kad beveik visos sistemos konfigūracijos

Kodėl turėtumėte naudoti SSHFS? Kaip prijungti nuotolinę failų sistemą su SSHFS „CentOS 6“.

Kodėl turėtumėte naudoti SSHFS? Kaip prijungti nuotolinę failų sistemą su SSHFS „CentOS 6“.

Daugelis sistemos administratorių valdo didelius serverių kiekius. Kai failus reikia pasiekti skirtinguose serveriuose, prisijungiant prie kiekvieno atskirai apytiksliai

„Half Life 2“ serverio nustatymas „CentOS 6“.

„Half Life 2“ serverio nustatymas „CentOS 6“.

Ši pamoka apims Half Life 2 žaidimų serverio diegimą CentOS 6 sistemoje. 1 veiksmas: būtinų sąlygų įdiegimas Norėdami nustatyti ou

Kaip įdiegti „Laravel GitScrum“ „CentOS 7“.

Kaip įdiegti „Laravel GitScrum“ „CentOS 7“.

Laravel GitScrum arba GitScrum yra atvirojo kodo produktyvumo įrankis, skirtas padėti kūrimo komandoms įgyvendinti Scrum metodiką panašiai

Kaip įdiegti „PowerDNS“ „CentOS“.

Kaip įdiegti „PowerDNS“ „CentOS“.

Įvadas Šiame „Vultr“ vadove sužinosite, kaip įdiegti „PowerDNS“. PowerDNS yra programa, skirta paleisti savo vardų serverius. Tai labai naudinga, kai

Įdiekite „Wordpress“ naudodami „Apache“, PHP ir „MySQL“ (automatinis paleisties scenarijus)

Įdiekite „Wordpress“ naudodami „Apache“, PHP ir „MySQL“ (automatinis paleisties scenarijus)

Galite nukopijuoti ir įklijuoti šį bash scenarijų į Vultr valdymo skydelio paleisties scenarijaus sritį. Jis įdiegs visus reikalingus paketus į ru

Mašinų augimas: AI pritaikymas realiame pasaulyje

Mašinų augimas: AI pritaikymas realiame pasaulyje

Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.

DDOS atakos: trumpa apžvalga

DDOS atakos: trumpa apžvalga

Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.

Duomenų saugojimo raida – infografika

Duomenų saugojimo raida – infografika

Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.

6 nuostabūs išmaniųjų namų įrenginių privalumai

6 nuostabūs išmaniųjų namų įrenginių privalumai

Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį