Ako nainštalovať LLVM a Clang na CentOS 6

Ako nainštalovať LLVM a Clang na CentOS 6

LLVM je infraštruktúra kompilátora s otvoreným zdrojom. LLVM bol spustený v roku 2000 a Apple ho vo veľkej miere používa a upravuje od roku 2005. Clang je kompilátor C, C++, Objective-C a Objective-C++, ktorý pracuje so systémom LLVM. Clang bol spustený v roku 2007 spoločnosťou Apple a odvtedy sa Google a Intel podieľajú na jeho ďalšom vývoji.

Vývojári Clang tvrdia, že v porovnaní s GCC sa kompiluje rýchlejšie, využíva menej pamäte, poskytuje užívateľsky príjemnejšiu diagnostiku počas kompilácie a je kompatibilný s GCC.

CentOS nasleduje vývoj Red Hat Enterprise Linux (RHEL). RHEL sa snaží byť stabilnou serverovou platformou, čo znamená, že sa neponáhľa s najnovšími verziami všetkého.

V čase písania tohto článku CentOS 6 oficiálne distribuuje LLVM & Clang v3.4.2. Vyšiel však Clang v3.6.

Oficiálny návrh je, že ak potrebujete novšiu verziu LLVM & Clang, mali by ste zvážiť inú distribúciu UNIX, ktorá je viac zameraná na podporu najnovších verzií softvérových balíkov.

Našťastie ste schopní nainštalovať novšiu verziu LLVM & Clang GCC na CentOS. To sa líši od čisto používania oficiálne distribuovaného softvéru, ale niekedy môžete mať pocit, že nemáte na výber.

Tento článok popisuje, ako nainštalovať CentOS 6 oficiálne podporovanú verziu LLVM & Clang a ako nainštalovať novšiu verziu. Tento článok predpokladá, že máte čerstvo nainštalovaný CentOS 6 VPS, ale určite môžete postupovať podľa pokynov na VPS, ktoré ste už používali.

Clang je do značnej miery nezávislý od GCC, ale v čase písania tohto článku Clang stále používa niekoľko zdieľaných knižníc nainštalovaných GCC (menovite crtbegin.o, gcc, a gcc_s). Ak si na CentOS 6 nainštalujete LLVM & Clang, nebudete môcť kompilovať nič, ak vo svojom systéme nemáte aj GCC pre tieto zdieľané knižnice. V ideálnom prípade by yum mal závislosť od balíka pre clang z gcc a gcc-c++, ale v čase písania tohto článku si yum o tejto závislosti neuvedomuje.

Navyše, vytvorenie novšej verzie LLVM & Clang zo zdroja vyžaduje G++ v4.7+, ktorý môžete získať iba na CentOS 6 tak, že ho nainštalujete podľa zdroja.

Ak spustíte všetky kroky uvedené nižšie, získate 2 verzie GCC a 2 verzie LLVM & Clang. To zahŕňa oficiálne podporovanú staršiu binárnu verziu a novšiu verziu zo zdroja pre každý program. Nie je však potrebné vykonať všetky kroky uvedené nižšie. Môžete sa rozhodnúť, či chcete oficiálne podporovanú binárnu staršiu verziu LLVM & Clang, alebo novšiu verziu zo zdroja, a spustite ktorúkoľvek časť pokynov, ktorá vyhovuje vášmu rozhodnutiu.

Nainštalujte oficiálne podporovanú (staršiu) verziu LLVM & Clang

  1. DÔLEŽITÉ! Najprv si nainštalujte oficiálne podporovanú (staršiu) verziu GCC vykonaním krokov v článku Ako nainštalovať GCC na CentOS 6NEMUSÍTE vykonať kroky pod nadpisom tohto článku „Nainštalovať novšiu verziu GCC zo zdroja ".

  2. Nainštalujte LLVM & Clang

    sudo yum install clang
        --- This will bring in llvm as a dependency
    
  3. Skontrolujte nainštalované verzie a pozrite si ich umiestnenie.

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

Nainštalujte novšiu verziu LLVM & Clang zo zdroja

Ak chcete zostaviť LLVM & Clang podľa zdroja na CentOS, musíte mať GCC v4.7 alebo novší. CentOS 6 nemá túto vysokú verziu v yum, takže najprv musíte nainštalovať novšiu verziu GCC zo zdroja.

  1. DÔLEŽITÉ! Najprv nainštalujte novšiu verziu GCC zo zdroja vykonaním krokov v článku Ako nainštalovať GCC na CentOS 6 – musíte vykonať všetky kroky v tomto článku, vrátane pod nadpisom „Nainštalujte novšiu verziu GCC z zdroj“.

  2. Nainštalujte ďalšie potrebné balíky.

    sudo yum install cmake
    
  3. Nainštalujte si novšiu verziu Pythonu. LLVM & Clang v3.6.0 vyžaduje Python v2.7+, ale úložisko yum CentOS 6 má iba 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. Rozhodnite sa, ktorú verziu LLVM & Clang chcete. Tento príkaz vám zobrazí „značky“ dostupných verzií.

    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. Získajte zdroj verzie LLVM & Clang, ktorú chcete. Toto pobeží niekoľko minút. Zvyšok tohto článku je napísaný pre RELEASE_360/a stiahne zdroje do ~/sourceInstallations/llvm_RELEASE_360/-- Budete musieť nahradiť správnu značku, aby vyhovovala budúcim verziám. Nižšie uvedené adresáre compiler-rt, libcxx, a libcxxabinie sú absolútne nevyhnutné, ale obsahujú niektoré funkcie, ktoré majú LLVM & Clang a ktoré GCC nemá, preto sú zahrnuté v tomto článku. Existujú ďalšie „podprojekty“ LLVM, ktoré by ste si mohli vybrať, ako napríklad dragonegg, LLDB, OpenMB, vmkit, polly, libclc, klee, SAFECode a lld. O tých si môžete prečítať na webovej stránke 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. Zostavte LLVM & Clang. Toto chvíľu pobeží. Ak sa to dokončí správne, posledný riadok, ktorý uvidíte, bude znamenať „úspech“. Je normálne, že niektoré chybne vyzerajúce správy sa rýchlo posúvajú. Vždy je dobré vytvoriť veci v inom adresári, ako je zdrojový adresár.

    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. Skontrolujte nainštalované verzie a pozrite si ich umiestnenie.

    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. Pridajte nové knižnice do ld (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. Voliteľne vytvorte program „ahoj svet“.

    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. Ak chcete, použite 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. Voliteľne získajte miesto na pevnom disku. Váš ~/sourceInstallationspriečinok bude zaberať približne 11 GB miesta na disku. Pravdepodobne je rozumné ponechať si priečinky, pretože existujú voliteľné možnosti konfigurácie, ktoré možno budete musieť niekedy v budúcnosti použiť, a bolo by rýchlejšie, keby ste toho už mali veľa hotových. A ako už bolo spomenuté vyššie, existujú ďalšie „podprojekty“, ktoré môžete pridať do LLVM & Clang. Proces zostavovania tiež vytvára protokoly, ktoré môžete neskôr skontrolovať a pracovať z nich, ak sa niečo pokazí. Ale po spustení "sudo make install" skôr, váš nainštalovaný LLVM & Clang nie je závislý na ničom v tomto adresári a priestor môže byť drahý, takže môžete urobiť tento krok a získať späť 11 GB.

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

Teraz máte svoje novšie LLVM & Clang v /usr/local/bin, vaše novšie 64-bitové knižnice LLVM & Clang v /usr/local/lib, a vaše novšie LLVM & Clang zahŕňajú súbory v /usr/local/include.


Install Plesk on CentOS 7

Install Plesk on CentOS 7

Using a Different System? Plesk is a proprietary web host control panel that allows users to administer their personal and/or clients websites, databases

Ako nainštalovať Squid Proxy na CentOS

Ako nainštalovať Squid Proxy na CentOS

Squid je populárny bezplatný linuxový program, ktorý vám umožňuje vytvoriť webový proxy server na presmerovanie. V tejto príručke uvidíte, ako nainštalovať Squid na CentOS, aby vás zmenil

Ako nainštalovať Lighttpd (LLMP Stack) na CentOS 6

Ako nainštalovať Lighttpd (LLMP Stack) na CentOS 6

Úvod Lighttpd je fork Apache, ktorého cieľom je byť oveľa menej náročný na zdroje. Je ľahký, odtiaľ jeho názov, a jeho použitie je celkom jednoduché. Installin

Konfigurácia statickej siete a IPv6 na CentOS 7

Konfigurácia statickej siete a IPv6 na CentOS 7

VULTR nedávno vykonal zmeny na ich konci a všetko by teraz malo fungovať dobre po vybalení so zapnutým NetworkManagerom. Ak chcete deaktivovať

Úprava Icinga2 na použitie modelu Master/Client na CentOS 6 alebo CentOS 7

Úprava Icinga2 na použitie modelu Master/Client na CentOS 6 alebo CentOS 7

Icinga2 je výkonný monitorovací systém a pri použití v modeli master-client môže nahradiť potrebu monitorovacích kontrol založených na NRPE. Hlavný klient

Ako nainštalovať Apache Cassandra 3.11.x na CentOS 7

Ako nainštalovať Apache Cassandra 3.11.x na CentOS 7

Používate iný systém? Apache Cassandra je bezplatný a otvorený systém správy databáz NoSQL, ktorý je navrhnutý tak, aby poskytoval škálovateľnosť, vysokú

Ako nainštalovať Microweber na CentOS 7

Ako nainštalovať Microweber na CentOS 7

Používate iný systém? Microweber je open source drag and drop CMS a online obchod. Zdrojový kód Microweber je umiestnený na GitHub. Tento návod vám to ukáže

Ako nainštalovať Mattermost 4.1 na CentOS 7

Ako nainštalovať Mattermost 4.1 na CentOS 7

Používate iný systém? Mattermost je open source, samostatne hosťovaná alternatíva k službe posielania správ Slack SAAS. Inými slovami, s Mattermostom môžete cca

Vytvorenie siete serverov Minecraft pomocou BungeeCord na Debian 8, Debian 9 alebo CentOS 7

Vytvorenie siete serverov Minecraft pomocou BungeeCord na Debian 8, Debian 9 alebo CentOS 7

Čo budete potrebovať Vultr VPS s aspoň 1 GB RAM. Prístup SSH (s oprávneniami root/administrátor). Krok 1: Inštalácia BungeeCord Najprv veci

Umožňuje šifrovanie na Plesku

Umožňuje šifrovanie na Plesku

Ovládací panel Plesk obsahuje veľmi peknú integráciu pre Lets Encrypt. Lets Encrypt je jedným z mála poskytovateľov SSL, ktorí rozdávajú kompletné certifikáty

Umožňuje šifrovanie na cPanel

Umožňuje šifrovanie na cPanel

Lets Encrypt je certifikačná autorita, ktorá sa venuje bezplatnému poskytovaniu certifikátov SSL. cPanel vytvoril úhľadnú integráciu, takže vy a váš klient

Ako nainštalovať Concrete5 na CentOS 7

Ako nainštalovať Concrete5 na CentOS 7

Používate iný systém? Concrete5 je open source CMS, ktorý ponúka mnoho charakteristických a užitočných funkcií, ktoré pomáhajú redaktorom jednoducho vytvárať obsah

Ako nainštalovať revíznu tabuľu na CentOS 7

Ako nainštalovať revíznu tabuľu na CentOS 7

Používate iný systém? Review Board je bezplatný a otvorený zdrojový nástroj na kontrolu zdrojového kódu, dokumentácie, obrázkov a mnohých ďalších. Je to webový softvér

Nastavte overenie HTTP pomocou Nginx na CentOS 7

Nastavte overenie HTTP pomocou Nginx na CentOS 7

V tejto príručke sa dozviete, ako nastaviť HTTP autentifikáciu pre webový server Nginx spustený na CentOS 7. Požiadavky Na začiatok budete potrebovať

Ako nainštalovať YOURLS na CentOS 7

Ako nainštalovať YOURLS na CentOS 7

YOURLS (Your Own URL Shortener) je open source aplikácia na skrátenie adresy URL a analýzu údajov. V tomto článku sa budeme zaoberať procesom inštalácie

Ako nainštalovať a nakonfigurovať ArangoDB na CentOS 7

Ako nainštalovať a nakonfigurovať ArangoDB na CentOS 7

Používate iný systém? Úvod ArangoDB je open source databáza NoSQL s flexibilným dátovým modelom pre dokumenty, grafy a hodnoty kľúča. to je

Použitie Etckeeper na kontrolu verzií /etc

Použitie Etckeeper na kontrolu verzií /etc

Úvod Adresár /etc/ hrá rozhodujúcu úlohu v spôsobe fungovania systému Linux. Dôvodom je skutočnosť, že takmer každá konfigurácia systému

Prečo by ste mali používať SSHFS? Ako pripojiť vzdialený súborový systém s SSHFS na CentOS 6

Prečo by ste mali používať SSHFS? Ako pripojiť vzdialený súborový systém s SSHFS na CentOS 6

Mnoho systémových administrátorov spravuje veľké množstvo serverov. Keď je potrebné pristupovať k súborom cez rôzne servery, prihlásenie do každého z nich samostatne ca

Nastavenie servera Half Life 2 na CentOS 6

Nastavenie servera Half Life 2 na CentOS 6

Tento tutoriál sa bude zaoberať procesom inštalácie herného servera Half Life 2 na systém CentOS 6. Krok 1: Inštalácia predpokladov Aby ste mohli nastaviť ou

Ako nainštalovať Laravel GitScrum na CentOS 7

Ako nainštalovať Laravel GitScrum na CentOS 7

Laravel GitScrum alebo GitScrum je nástroj na zvýšenie produktivity s otvoreným zdrojom určený na pomoc vývojovým tímom implementovať metodiku Scrum podobným spôsobom.

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.

Útoky DDOS: Stručný prehľad

Útoky DDOS: Stručný prehľad

Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.

Vývoj ukladania dát – Infografika

Vývoj ukladania dát – Infografika

Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.

Funkcionality vrstiev referenčnej architektúry veľkých dát

Funkcionality vrstiev referenčnej architektúry veľkých dát

Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac