Kā instalēt LLVM un Clang operētājsistēmā CentOS 6

Kā instalēt LLVM un Clang operētājsistēmā CentOS 6

LLVM ir atvērtā koda kompilatoru infrastruktūra. LLVM tika uzsākta 2000. gadā, un Apple to plaši izmanto un modificē kopš 2005. gada. Clang ir C, C++, Objective-C un Objective-C++ kompilators, kas darbojas ar LLVM sistēmu. Clang 2007. gadā aizsāka Apple, un kopš tā laika Google un Intel ir iesaistījušies tā nepārtrauktā attīstībā.

Clang izstrādātāji apgalvo, ka salīdzinājumā ar GCC tas kompilē ātrāk, izmanto mazāk atmiņas, sniedz lietotājam draudzīgāku diagnostiku kompilācijas laikā un ir saderīgs ar GCC.

CentOS seko Red Hat Enterprise Linux (RHEL) attīstībai. RHEL cenšas būt stabila servera platforma, kas nozīmē, ka tā nesteidzas iekļaut visa jaunākās versijas.

Kopš šī raksta rakstīšanas CentOS 6 oficiāli izplata LLVM & Clang v3.4.2. Tomēr Clang v3.6 ir izlaists.

Oficiālais ieteikums ir tāds, ka, ja jums ir nepieciešama jaunāka LLVM & Clang versija, jums vajadzētu apsvērt citu UNIX izplatīšanu, kas ir vairāk vērsta uz jaunāko programmatūras pakotņu versiju atbalstu.

Par laimi, CentOS varat instalēt jaunāku versiju LLVM & Clang GCC. Tas atšķiras no oficiāli izplatītās programmatūras izmantošanas, taču dažreiz jums var šķist, ka jums nav izvēles.

Šajā rakstā ir aprakstīts, kā instalēt CentOS 6 oficiāli atbalstīto LLVM & Clang versiju un kā instalēt jaunāku versiju. Šajā rakstā tiek pieņemts, ka jums ir tikko instalēts CentOS 6 VPS, taču jūs noteikti varat sekot norādījumiem par VPS, kuru jau esat izmantojis.

Clang lielā mērā ir neatkarīgs no GCC, taču kopš šī raksta rakstīšanas Clang joprojām izmanto vairākas GCC instalētās koplietotās bibliotēkas (proti, crtbegin.o, gcc, un gcc_s). Ja instalējat LLVM & Clang operētājsistēmā CentOS 6, jūs nevarēsit neko kompilēt, ja jūsu sistēmā nav arī GCC šīm koplietotajām bibliotēkām. Ideālā gadījumā yum būtu pakotnes atkarība no gcc un gcc-c++, taču šī raksta tapšanas brīdī yum par atkarību nezina.

Turklāt, lai izveidotu jaunāku LLVM & Clang versiju no avota, ir nepieciešama G++ v4.7+, kuru varat iegūt tikai operētājsistēmā CentOS 6, instalējot to pēc avota.

Ja izpildīsit visas tālāk norādītās darbības, tiks izveidotas 2 GCC versijas un 2 LLVM un Clang versijas. Tas ietver katras programmas oficiāli atbalstītu bināro vecāku versiju un jaunāku versiju no avota. Tomēr nav nepieciešams veikt visas tālāk norādītās darbības. Varat izlemt, vai vēlaties oficiāli atbalstīto bināro vecāku LLVM & Clang versiju vai jaunāku versiju no avota, un palaist jebkuru instrukciju sadaļu, kas atbilst jūsu lēmumam.

Instalējiet oficiāli atbalstītu (vecāku) LLVM & Clang versiju

  1. SVARĪGS! Vispirms instalējiet oficiāli atbalstītu (vecāku) GCC versiju, veicot darbības, kas norādītas rakstā Kā instalēt GCC operētājsistēmā CentOS 6 — jums NAV jāveic darbības, kas norādītas šī raksta virsrakstā "Instalējiet jaunāku GCC versiju no avota. ".

  2. Instalējiet LLVM & Clang

    sudo yum install clang
        --- This will bring in llvm as a dependency
    
  3. Pārbaudiet instalētās versijas un skatiet to atrašanās 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++
    

Instalējiet jaunāku LLVM & Clang versiju no avota

Lai sistēmā CentOS izveidotu LLVM un Clang pēc avota, jums ir jābūt GCC v4.7 vai jaunākai versijai. CentOS 6 nav tik augstas versijas yum, tāpēc vispirms ir jāinstalē jaunāks GCC no avota.

  1. SVARĪGS! Vispirms instalējiet jaunāku GCC versiju no avota, veicot darbības, kas norādītas rakstā Kā instalēt GCC operētājsistēmā CentOS 6 — jums ir jāveic visas šajā rakstā minētās darbības, tostarp sadaļā "Instalējiet jaunāku GCC versiju no avots".

  2. Instalējiet papildus nepieciešamās pakotnes.

    sudo yum install cmake
    
  3. Instalējiet jaunāku Python versiju. LLVM un Clang v3.6.0 nepieciešama Python v2.7+, bet CentOS 6 yum repozitorijā ir tikai 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. Izlemiet, kuru LLVM & Clang versiju vēlaties. Šī komanda parādīs pieejamo versiju "birkas".

    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. Iegūstiet vajadzīgās LLVM & Clang versijas avotu. Tas darbosies dažas minūtes. Pārējā šī raksta daļa ir rakstīta, RELEASE_360/un avoti tiks lejupielādēti šeit ~/sourceInstallations/llvm_RELEASE_360/: jums būs jāaizstāj atbilstošs tags, lai tas atbilstu turpmākajām versijām. Tālāk esošie direktoriji compiler-rt, libcxx, un libcxxabinav absolūti nepieciešami, taču tajos ir iekļauti daži no LLVM & Clang līdzekļiem, kam nav GCC, tāpēc tie ir iekļauti šajā rakstā. Ir arī citi LLVM "apakšprojekti", kurus varat izvēlēties, piemēram, dragonegg, LLDB, OpenMB, vmkit, polly, libclc, klee, SAFECOde un lld. Par tiem var lasīt LLVM mājaslapā .

    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. Izveidojiet LLVM & Clang. Tas kādu laiku darbosies. Ja tas tiks pabeigts pareizi, pēdējā rindiņā būs uzraksts "veiksmi". Ir normāli, ja daži kļūdaini ziņojumi ātri ritina garām. Vienmēr ir laba ideja veidot lietas citā direktorijā, nevis avota direktorijā.

    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. Pārbaudiet instalētās versijas un skatiet to atrašanās 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. Pievienojiet jaunās bibliotēkas ld (GNU saitei).

    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. Pēc izvēles izveidojiet programmu "Sveika pasaule".

    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. Izmantojiet LLVM & Clang, kad vēlaties.

    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. Pēc izvēles atgūstiet vietu cietajā diskā. Jūsu ~/sourceInstallationsmape aizņems aptuveni 11 GB diska vietas. Droši vien ir prātīgi saglabāt mapes, jo ir pieejamas izvēles konfigurācijas opcijas, kuras, iespējams, vajadzēs izmantot nākotnē, un ātrāk būtu, ja daudz kas jau būtu izdarīts. Un, kā minēts iepriekš, ir papildu "apakšprojekti", ko varat pievienot LLVM & Clang. Turklāt izveides procesā tiek izveidoti žurnāli, kurus vēlāk varat pārbaudīt un pēc tam strādāt, ja kaut kas noiet greizi. Taču pēc iepriekšējas sudo make install palaišanas jūsu instalētā LLVM & Clang nav atkarīga no nekā šajā direktorijā, un vietas var būt ļoti daudz, tāpēc varat veikt šo darbību un atgūt 11 GB.

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

Tagad jums ir jaunākā LLVM & Clang mapē /usr/local/bin, jūsu jaunākās 64 bitu LLVM & Clang libs mapē /usr/local/lib, un jūsu jaunākajā LLVM & Clang ir faili mapē /usr/local/include.


Instalējiet Plesk operētājsistēmā CentOS 7

Instalējiet Plesk operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Plesk ir patentēts tīmekļa mitinātāja vadības panelis, kas ļauj lietotājiem administrēt savas personīgās un/vai klientu vietnes, datu bāzes

Kā instalēt Squid starpniekserveri CentOS

Kā instalēt Squid starpniekserveri CentOS

Squid ir populāra bezmaksas Linux programma, kas ļauj izveidot pāradresācijas tīmekļa starpniekserveri. Šajā rokasgrāmatā jūs redzēsit, kā instalēt Squid uz CentOS, lai jūs pārvērstu

Kā instalēt Lighttpd (LLMP Stack) operētājsistēmā CentOS 6

Kā instalēt Lighttpd (LLMP Stack) operētājsistēmā CentOS 6

Ievads Lighttpd ir Apache dakša, kuras mērķis ir daudz mazāk resursietilpīgs. Tas ir viegls, tāpēc arī tā nosaukums ir diezgan vienkārši lietojams. Instalēšana

Statiskā tīkla un IPv6 konfigurēšana operētājsistēmā CentOS 7

Statiskā tīkla un IPv6 konfigurēšana operētājsistēmā CentOS 7

VULTR nesen veica izmaiņas, un tagad visam vajadzētu darboties labi, ja ir iespējots NetworkManager. Ja vēlaties atspējot

Icinga2 modificēšana, lai izmantotu galveno/klienta modeli operētājsistēmā CentOS 6 vai CentOS 7

Icinga2 modificēšana, lai izmantotu galveno/klienta modeli operētājsistēmā CentOS 6 vai CentOS 7

Icinga2 ir spēcīga uzraudzības sistēma, un, ja to izmanto galvenā klienta modelī, tā var aizstāt vajadzību pēc NRPE balstītām uzraudzības pārbaudēm. Meistars-klients

Kā instalēt Apache Cassandra 3.11.x operētājsistēmā CentOS 7

Kā instalēt Apache Cassandra 3.11.x operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Apache Cassandra ir bezmaksas un atvērtā koda NoSQL datu bāzes pārvaldības sistēma, kas ir izstrādāta, lai nodrošinātu mērogojamību, hig.

Kā instalēt Microweber operētājsistēmā CentOS 7

Kā instalēt Microweber operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Microweber ir atvērtā koda vilkšanas un nomešanas CMS un tiešsaistes veikals. Microweber pirmkods tiek mitināts vietnē GitHub. Šī rokasgrāmata jums parādīs

Kā instalēt Mattermost 4.1 operētājsistēmā CentOS 7

Kā instalēt Mattermost 4.1 operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Mattermost ir atvērtā pirmkoda, pašmitināta alternatīva Slack SAAS ziņojumapmaiņas pakalpojumam. Citiem vārdiem sakot, izmantojot Mattermost, jūs apm

Minecraft serveru tīkla izveide ar BungeeCord operētājsistēmā Debian 8, Debian 9 vai CentOS 7

Minecraft serveru tīkla izveide ar BungeeCord operētājsistēmā Debian 8, Debian 9 vai CentOS 7

Kas jums būs nepieciešams Vultr VPS ar vismaz 1 GB RAM. SSH piekļuve (ar root/administratora tiesībām). 1. darbība: BungeeCord instalēšana Vispirms vispirms

Ļauj šifrēt vietnē Plesk

Ļauj šifrēt vietnē Plesk

Plesk vadības panelī ir ļoti jauka Lets Encrypt integrācija. Lets Encrypt ir viens no vienīgajiem SSL nodrošinātājiem, kas pilnībā izsniedz sertifikātus

Ļauj šifrēt cPanel

Ļauj šifrēt cPanel

Lets Encrypt ir sertifikātu iestāde, kas nodrošina SSL sertifikātus bez maksas. cPanel ir izveidojis glītu integrāciju, lai jūs un jūsu klients

Kā instalēt Concrete5 operētājsistēmā CentOS 7

Kā instalēt Concrete5 operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Concrete5 ir atvērtā pirmkoda CMS, kas piedāvā daudzas atšķirīgas un noderīgas funkcijas, lai palīdzētu redaktoriem viegli izveidot saturu.

Kā instalēt pārskata paneli sistēmā CentOS 7

Kā instalēt pārskata paneli sistēmā CentOS 7

Vai izmantojat citu sistēmu? Pārskatīšanas padome ir bezmaksas atvērtā pirmkoda rīks pirmkoda, dokumentācijas, attēlu un daudz ko citu pārskatīšanai. Tā ir tīmekļa programmatūra

Iestatiet HTTP autentifikāciju, izmantojot Nginx operētājsistēmā CentOS 7

Iestatiet HTTP autentifikāciju, izmantojot Nginx operētājsistēmā CentOS 7

Šajā rokasgrāmatā jūs uzzināsit, kā iestatīt HTTP autentifikāciju Nginx tīmekļa serverim, kas darbojas operētājsistēmā CentOS 7. Prasības Lai sāktu darbu, jums būs nepieciešams

Kā instalēt YOURLS operētājsistēmā CentOS 7

Kā instalēt YOURLS operētājsistēmā CentOS 7

YOURLS (Your Own URL Shortener) ir atvērtā koda URL saīsināšanas un datu analīzes lietojumprogramma. Šajā rakstā mēs apskatīsim instalēšanas procesu

Kā instalēt un konfigurēt ArangoDB operētājsistēmā CentOS 7

Kā instalēt un konfigurēt ArangoDB operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Ievads ArangoDB ir atvērtā koda NoSQL datu bāze ar elastīgu datu modeli dokumentiem, grafikiem un atslēgu vērtībām. Tas ir

Etckeeper izmantošana /etc versiju kontrolei

Etckeeper izmantošana /etc versiju kontrolei

Ievads /etc/ direktorijam ir izšķiroša nozīme Linux sistēmas darbībā. Iemesls tam ir gandrīz visas sistēmas konfigurācijas

Kāpēc jums vajadzētu izmantot SSHFS? Kā uzstādīt attālo failu sistēmu ar SSHFS operētājsistēmā CentOS 6

Kāpēc jums vajadzētu izmantot SSHFS? Kā uzstādīt attālo failu sistēmu ar SSHFS operētājsistēmā CentOS 6

Daudzi sistēmu administratori pārvalda lielu daudzumu serveru. Ja failiem ir jāpiekļūst dažādos serveros, piesakieties katrā atsevišķi apm

Half Life 2 servera iestatīšana operētājsistēmā CentOS 6

Half Life 2 servera iestatīšana operētājsistēmā CentOS 6

Šajā apmācībā tiks apskatīts Half Life 2 spēļu servera instalēšanas process sistēmā CentOS 6. 1. darbība: priekšnosacījumu instalēšana Lai iestatītu ou

Kā instalēt Laravel GitScrum operētājsistēmā CentOS 7

Kā instalēt Laravel GitScrum operētājsistēmā CentOS 7

Laravel GitScrum jeb GitScrum ir atvērtā pirmkoda produktivitātes rīks, kas izstrādāts, lai palīdzētu izstrādātāju komandām ieviest Scrum metodoloģiju līdzīgā veidā.

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk