Како инсталирати ЛЛВМ и Цланг на ЦентОС 6

Како инсталирати ЛЛВМ и Цланг на ЦентОС 6

ЛЛВМ је инфраструктура компајлера отвореног кода. ЛЛВМ је покренут 2000. године, а Аппле га је интензивно користио и модификовао од 2005. Цланг је Ц, Ц++, Објецтиве-Ц и Објецтиве-Ц++ компајлер који ради са ЛЛВМ системом. Цланг је покренуо Аппле 2007. године и од тада су Гоогле и Интел укључени у његов континуирани развој.

Цланг-ови програмери тврде да се у поређењу са ГЦЦ-ом, компајлира брже, користи мање меморије, даје лакшу дијагностику током компилације и компатибилан је са ГЦЦ-ом.

ЦентОС прати развој Ред Хат Ентерприсе Линук-а (РХЕЛ). РХЕЛ тежи да буде стабилна серверска платформа, што значи да не жури да укључи најновије верзије свега.

Од писања овог чланка, ЦентОС 6 званично дистрибуира ЛЛВМ & Цланг в3.4.2. Међутим, Цланг в3.6 је објављен.

Званични предлог је да ако вам је потребна новија верзија ЛЛВМ & Цланг, требало би да размислите о другој УНИКС дистрибуцији која је више фокусирана на подршку најновијим верзијама софтверских пакета.

На срећу, можете да инсталирате новију верзију ЛЛВМ & Цланг ГЦЦ на ЦентОС. Ово одступа од чистог коришћења званично дистрибуираног софтвера, али понекад се можете осећати као да немате мало избора.

Овај чланак описује како да инсталирате ЦентОС 6 званично подржану верзију ЛЛВМ & Цланг-а и како да инсталирате новију верзију. Овај чланак претпоставља да имате недавно инсталиран ЦентОС 6 ВПС, али свакако можете пратити упутства на ВПС-у који већ користите.

Цланг је у великој мери независан од ГЦЦ-а, али од писања овог чланка, Цланг и даље користи неколико дељених библиотека које је ГЦЦ инсталирао (наиме, crtbegin.o, gcc, и gcc_s). Ако инсталирате ЛЛВМ & Цланг на ЦентОС 6, нећете моћи ништа да преведете ако такође немате ГЦЦ на свом систему за ове дељене библиотеке. У идеалном случају, иум би имао зависност пакета за цланг од гцц и гцц-ц++, али од писања овог чланка, иум није свестан зависности.

Поред тога, прављење новије верзије ЛЛВМ & Цланг из извора захтева Г++ в4.7+, који можете добити само на ЦентОС 6 ако га инсталирате према извору.

Ако покренете све доле наведене кораке, добићете 2 верзије ГЦЦ-а и 2 верзије ЛЛВМ-а и Цланг-а. Ово укључује званично подржану бинарну старију верзију и новију верзију из извора за сваки програм. Међутим, нема потребе да извршавате све доленаведене кораке. Можете одлучити да ли желите званично подржану бинарну старију верзију ЛЛВМ & Цланг или новију верзију из извора и покрените било који део упутстава који одговара вашој одлуци.

Инсталирајте званично подржану (старију) верзију ЛЛВМ & Цланг

  1. ВАЖНО! Прво, инсталирајте званично подржану (старију) верзију ГЦЦ-а тако што ћете извршити кораке у чланку Како инсталирати ГЦЦ на ЦентОС 6 -- НЕ морате да обављате кораке под насловом тог чланка „Инсталирајте новију верзију ГЦЦ-а из извора „.

  2. Инсталирајте ЛЛВМ & Цланг

    sudo yum install clang
        --- This will bring in llvm as a dependency
    
  3. Проверите инсталиране верзије и погледајте њихове локације.

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

Инсталирајте новију верзију ЛЛВМ & Цланг из извора

Да бисте направили ЛЛВМ & Цланг према извору на ЦентОС-у, морате имати ГЦЦ в4.7 или новији. ЦентОС 6 нема оволику верзију у иум-у, тако да прво морате да инсталирате новији ГЦЦ из извора.

  1. ВАЖНО! Прво, инсталирајте новију верзију ГЦЦ-а из извора, тако што ћете извршити кораке у чланку Како инсталирати ГЦЦ на ЦентОС 6 -- потребно је да извршите све кораке у том чланку, укључујући под насловом „Инсталирајте новију верзију ГЦЦ-а са извор".

  2. Инсталирајте додатно потребне пакете.

    sudo yum install cmake
    
  3. Инсталирајте новију верзију Питхона. ЛЛВМ & Цланг в3.6.0 захтева Питхон в2.7+, али ЦентОС 6 иум спремиште има само Питхон в2.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. Одлучите коју верзију ЛЛВМ & Цланг желите. Ова команда ће вам показати "ознаке" за доступне верзије.

    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. Набавите извор верзије ЛЛВМ & Цланг коју желите. Ово ће трајати неколико минута. Остатак овог чланка је написан за RELEASE_360/и преузимаће изворе у ~/sourceInstallations/llvm_RELEASE_360/-- Мораћете да замените одговарајућу ознаку да би одговарала будућим верзијама. Директоријуми испод compiler-rt, libcxx, и libcxxabiнису апсолутно неопходни, али садрже неке од функција које ЛЛВМ & Цланг имају, а ГЦЦ нема, па су укључени у овај чланак. Постоје и други ЛЛВМ „подпројекти“ које можете изабрати да користите, као што су драгонегг, ЛЛДБ, ОпенМБ, вмкит, полли, либцлц, клее, САФЕЦоде и ллд. О њима можете прочитати на веб локацији ЛЛВМ .

    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. Изградите ЛЛВМ & Цланг. Ово ће трајати неко време. Ако се ово заврши исправно, последњи ред који ћете видети ће рећи „успех“. Нормално је да се неке поруке које изгледају као грешке брзо померају. Увек је добра идеја изградити ствари у директоријуму различитом од изворног.

    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. Проверите инсталиране верзије и погледајте њихове локације.

    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. Додајте нове библиотеке у лд (ГНУ линкер).

    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. Опционо направите програм "здраво свет".

    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. Користите ЛЛВМ & Цланг када желите.

    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. Опционо повратите простор на чврстом диску. Ваша ~/sourceInstallationsфасцикла ће заузимати око 11 ГБ простора на диску. Вероватно је паметно задржати фасцикле, јер постоје опционе опције конфигурације које ћете можда морати да користите у неком тренутку у будућности, а било би брже да сте већ много тога урадили. И, као што је горе поменуто, постоје додатни "подпројекти" које можете додати у ЛЛВМ & Цланг. Такође, процес изградње прави евиденције које касније можете да проверите и да радите са њима ако нешто крене наопако. Али, након што сте раније покренули „судо маке инсталл“, ваш инсталирани ЛЛВМ & Цланг не зависи ни од чега у овом директоријуму, а простор може бити премиум, тако да можете да урадите овај корак и повратите 11 ГБ.

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

Сада имате свој новији ЛЛВМ & Цланг у /usr/local/bin, своје новије 64-битне ЛЛВМ & Цланг библиотеке у /usr/local/lib, а нови ЛЛВМ & Цланг укључује датотеке у /usr/local/include.


Инсталирајте Плеск на ЦентОС 7

Инсталирајте Плеск на ЦентОС 7

Користите другачији систем? Плеск је власничка контролна табла веб хоста која омогућава корисницима да управљају својим личним и/или клијентским веб локацијама, базама података

Како инсталирати Скуид проки на ЦентОС

Како инсталирати Скуид проки на ЦентОС

Скуид је популаран, бесплатни Линук програм који вам омогућава да креирате веб проки за прослеђивање. У овом водичу ћете видети како да инсталирате Скуид на ЦентОС да вас преокрене

Како инсталирати Лигхттпд (ЛЛМП Стацк) на ЦентОС 6

Како инсталирати Лигхттпд (ЛЛМП Стацк) на ЦентОС 6

Увод Лигхттпд је форк Апацхе-а који има за циљ да буде много мање интензиван према ресурсима. Лаган је, отуда и његово име, и прилично је једноставан за употребу. Инсталлин

Конфигурисање статичког умрежавања и ИПв6 на ЦентОС 7

Конфигурисање статичког умрежавања и ИПв6 на ЦентОС 7

ВУЛТР је недавно направио измене на њиховој страни, и сада би све требало да ради добро из кутије са омогућеним НетворкМанагер-ом. Ако желите да онемогућите

Модификовање Ицинга2 да користи модел Мастер/Цлиент на ЦентОС 6 или ЦентОС 7

Модификовање Ицинга2 да користи модел Мастер/Цлиент на ЦентОС 6 или ЦентОС 7

Ицинга2 је моћан систем за праћење, и када се користи у моделу мастер-цлиент, може да замени потребу за провером праћења заснованом на НРПЕ. Главни клијент

Како инсталирати Апацхе Цассандра 3.11.к на ЦентОС 7

Како инсталирати Апацхе Цассандра 3.11.к на ЦентОС 7

Користите другачији систем? Апацхе Цассандра је бесплатан систем за управљање НоСКЛ базом података отвореног кода који је дизајниран да обезбеди скалабилност, високу

Како инсталирати Мицровебер на ЦентОС 7

Како инсталирати Мицровебер на ЦентОС 7

Користите другачији систем? Мицровебер је ЦМС и онлајн продавница отвореног кода. Мицровебер изворни код се налази на ГитХуб-у. Овај водич ће вам показати

Како инсталирати Маттермост 4.1 на ЦентОС 7

Како инсталирати Маттермост 4.1 на ЦентОС 7

Користите другачији систем? Маттермост је опен соурце алтернатива Слацк СААС сервису за размену порука. Другим речима, са Маттермостом, ца

Креирање мреже Минецрафт сервера са БунгееЦорд-ом на Дебиан 8, Дебиан 9 или ЦентОС 7

Креирање мреже Минецрафт сервера са БунгееЦорд-ом на Дебиан 8, Дебиан 9 или ЦентОС 7

Шта вам треба Вултр ВПС са најмање 1 ГБ РАМ-а. ССХ приступ (са роот/административним привилегијама). Корак 1: Инсталирање БунгееЦорд-а Прво прво

Омогућава шифровање на Плеску

Омогућава шифровање на Плеску

Плеск контролна табла има веома лепу интеграцију за Летс Енцрипт. Летс Енцрипт је један од јединих ССЛ провајдера који у потпуности издају сертификате

Омогућава шифровање на цПанелу

Омогућава шифровање на цПанелу

Летс Енцрипт је ауторитет за сертификацију посвећен бесплатном пружању ССЛ сертификата. цПанел је направио уредну интеграцију тако да ви и ваш клијент

Како инсталирати Цонцрете5 на ЦентОС 7

Како инсталирати Цонцрете5 на ЦентОС 7

Користите другачији систем? Цонцрете5 је ЦМС отвореног кода који нуди многе карактеристичне и корисне функције које помажу уредницима да лако производе садржај и

Како инсталирати плочу за преглед на ЦентОС 7

Како инсталирати плочу за преглед на ЦентОС 7

Користите другачији систем? Ревиев Боард је бесплатан алат отвореног кода за преглед изворног кода, документације, слика и још много тога. То је софтвер заснован на вебу

Подесите ХТТП аутентификацију помоћу Нгинк-а на ЦентОС 7

Подесите ХТТП аутентификацију помоћу Нгинк-а на ЦентОС 7

У овом водичу ћете научити како да подесите ХТТП аутентификацију за Нгинк веб сервер који ради на ЦентОС 7. Захтеви Да бисте започели, требаће вам

Како инсталирати ИОУРЛС на ЦентОС 7

Како инсталирати ИОУРЛС на ЦентОС 7

ИОУРЛС (Иоур Овн УРЛ Схортенер) је апликација за скраћивање УРЛ-ова отвореног кода и аналитику података. У овом чланку ћемо покрити процес инсталације

Како инсталирати и конфигурисати АрангоДБ на ЦентОС 7

Како инсталирати и конфигурисати АрангоДБ на ЦентОС 7

Користите другачији систем? Увод АрангоДБ је НоСКЛ база података отвореног кода са флексибилним моделом података за документе, графиконе и кључ-вредности. То је

Коришћење Етцкеепер-а за контролу верзија /етц

Коришћење Етцкеепер-а за контролу верзија /етц

Увод Директоријум /етц/ игра кључну улогу у начину на који Линук систем функционише. Разлог за то је што је скоро свака конфигурација система

Зашто би требало да користите ССХФС? Како монтирати удаљени систем датотека са ССХФС на ЦентОС 6

Зашто би требало да користите ССХФС? Како монтирати удаљени систем датотека са ССХФС на ЦентОС 6

Многи системски администратори управљају великим количинама сервера. Када датотекама треба приступити на различитим серверима, пријављивање на сваки појединачно ца

Подешавање сервера Халф Лифе 2 на ЦентОС 6

Подешавање сервера Халф Лифе 2 на ЦентОС 6

Овај водич ће покрити процес инсталирања Халф Лифе 2 сервера за игре на ЦентОС 6 систем. Корак 1: Инсталирање предуслова Да бисте подесили оу

Како инсталирати Ларавел ГитСцрум на ЦентОС 7

Како инсталирати Ларавел ГитСцрум на ЦентОС 7

Ларавел ГитСцрум или ГитСцрум је алатка за продуктивност отвореног кода дизајнирана да помогне развојним тимовима да имплементирају Сцрум методологију на сличан начин т

Успон машина: Примене вештачке интелигенције у стварном свету

Успон машина: Примене вештачке интелигенције у стварном свету

Вештачка интелигенција није у будућности, она је овде управо у садашњости. У овом блогу Прочитајте како су апликације вештачке интелигенције утицале на различите секторе.

ДДОС напади: кратак преглед

ДДОС напади: кратак преглед

Да ли сте и ви жртва ДДОС напада и збуњени сте методама превенције? Прочитајте овај чланак да бисте решили своја питања.

Да ли сте се икада запитали како хакери зарађују новац?

Да ли сте се икада запитали како хакери зарађују новац?

Можда сте чули да хакери зарађују много новца, али да ли сте се икада запитали како зарађују толики новац? Хајде да причамо.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Да ли желите да видите револуционарне изуме Гугла и како су ти изуми променили живот сваког људског бића данас? Затим читајте на блогу да бисте видели Гооглеове изуме.

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Концепт самовозећих аутомобила који путују на путеве уз помоћ вештачке интелигенције је сан који већ неко време имамо. Али упркос неколико обећања, њих нема нигде. Прочитајте овај блог да сазнате више…

Технолошка сингуларност: далека будућност људске цивилизације?

Технолошка сингуларност: далека будућност људске цивилизације?

Како се наука развија великом брзином, преузимајући многе наше напоре, расте и ризик да се подвргнемо необјашњивој сингуларности. Прочитајте шта би сингуларност могла да значи за нас.

Еволуција складиштења података – Инфографика

Еволуција складиштења података – Инфографика

Методе складиштења података су се развијале можда од рођења података. Овај блог покрива еволуцију складиштења података на основу инфографике.

Функционалности слојева референтне архитектуре великих података

Функционалности слојева референтне архитектуре великих података

Прочитајте блог да бисте на најједноставнији начин упознали различите слојеве у архитектури великих података и њихове функционалности.

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

У овом дигиталном свету, паметни кућни уређаји постали су кључни део живота. Ево неколико невероватних предности паметних кућних уређаја о томе како они чине наш живот вредним живљења и једноставнијим.

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Недавно је Аппле издао мацОС Цаталина 10.15.4 додатак за исправку проблема, али изгледа да ажурирање изазива више проблема који доводе до квара Мац машина. Прочитајте овај чланак да бисте сазнали више