Sistemet e përpilimit. Përtej konfigurimit të thjeshtë, bëje, instalo

Të gjithë ose pothuajse të gjithë (dhe nëse nuk jeni me fat) na është dashur të përpilojmë një program nga kodi burimor. Në të vërtetë, në shumicën e projekteve mjafton të bësh një ./configure && make && install për të instaluar programin, por ne do të shohim alternativat e ndryshme:

Bëni GNU

GNU Make është një sistem përpilimi i nivelit të ulët, pak gjëra konfigurohen dhe nuk kryhen teste:

Pro:

  • Shumë e përhapur
  • E thjeshtë për t’u kuptuar
  • I shpejtë

Cons:

  • Pak e konfigurueshme
  • Vështirë për tu mirëmbajtur
  • Nuk kryen teste

make

BSD Bëni

BSD Make është një tjetër version i Make që përdoret aktualisht nga * sistemet operative BSD. Ai ndryshon nga GNU Make, duke qenë BSD Make më gjithëpërfshirës në funksionalitet edhe pse është më pak i përhapur.

Pro:

  • I shpejtë
  • E thjeshtë për t’u kuptuar
  • Më shumë karakteristika sesa GNU Make

Cons:

  • Jo e përhapur në botën Linux
  • Nuk kryen teste
  • Pak e konfigurueshme
  • Vështirë për tu mirëmbajtur

make

Automjete automobilistike

Autotools është sistemi zyrtar i GNU dhe gjeneron një skenar të quajtur konfigurim që duhet ta thërrasim për të gjeneruar formularin përkatës nga GNU Make. Përdoret gjerësisht, megjithatë, gjithnjë e më shumë njerëz (përfshirë edhe unë) mendojnë se është shumë e rëndë, e vështirë, e ngadaltë dhe jo shumë e pajtueshme.

Pro:

  • Konfigurohet shumë
  • Shumë e përhapur

Cons:

  • Pak transportueshmëri midis sistemeve Jo-UNIX
  • Kryeni shumë teste (kontrolloni GJITHA, dhe GJITHA është GJITHA)
  • Shumë i ngadaltë kur konfiguroni
  • Përputhshmëri e dobët prapa

./configure && make

Bëni

(Sistemi im i preferuar) CMake është një sistem që vjen për të kompensuar mangësitë e Automjeteve në shumë aspekte, siç është pajtueshmëria dhe transportueshmëria e tij e tmerrshme prapa. Gjithashtu përmirësimi i sistemit të testimit që janë shumë të konfigurueshëm për nevojat e secilit projekt. E vërteta është se gjithnjë e më shumë projekte përdorin CMake si KDE, PortAudio, Ogre3D, etj. Ne mund ta njohim këtë lloj sistemi falë një skedari CMakeLists.txt që do të gjenerojë një Makefile ose një projekt për Eclipse ose CodeBlocks

Pro:

  • I shpejtë
  • Mbështetje e shkëlqyeshme ndër-platformë
  • Ju mund të përcaktoni testet në një mënyrë shumë të personalizueshme

Cons:

  • E vështirë për tu kuptuar në fillim
  • Ju duhet të punoni me një abstraksion që mund të jetë i frikshëm në fillim
  • Pak përhapet edhe pse pak nga pak rritet

cmake . && make

Q Bëni

QMake është një sistem i krijuar nga Trolltech për të përpiluar projekte të bëra në Qt. Në këtë mënyrë qmake vë theks të madh në Qt dhe zakonisht është formati i përdorur nga IDE-të si QtCreator. Isshtë mjaft i popullarizuar në projektet Qt por nuk gjendet jashtë këtij ambienti:

Pro:

  • Shumë mirë i integruar me Qt
  • I shpejtë
  • Multiplatform i mirë brenda Qt

Cons:

  • E pazakontë jashtë aplikacioneve Qt

qmake . && make

Scons

SCons është një sistem i bazuar në Python për përpilimin e projekteve C / C ++. Ndryshe nga Automotools, CMake ose QMake; SCons nuk ndërton një Makefile. SCons është shumë i modifikueshëm, por është ndoshta më i ngadalshmi në operacionet e thjeshta
Pro:

  • Modifikim i lehtë
  • Bëni provat e drejta

Cons:

  • Pak përhapje
  • i ngadalshëm

scons

Nxit. Jam

Boost.Jam është një version i Perforce Jam që përdoret në bibliotekat e njohura C ++ Boost, edhe pse sistemi i përpilimit mund të përdoret veçmas. Ndryshe nga GNU Make, Boost.Jam përdor Jamfiles, të cilat janë një version i përmirësuar i Makefiles. Ata janë mjaft të njohur në mjedisin BeOS / Zeta / Haiku.

Pro:

  • I shpejtë
  • Më e shkurtër për të shkruar

Cons:

  • Pak përhapje
  • Vështirësia në kryerjen e testeve

bjam

Ninja

Ninja është një sistem i zhvilluar nga Google për të siguruar një sistem ndërtimi ultra të shpejtë të dizajnuar fillimisht për të qenë ai i projektit Chromium. Ninja nuk është krijuar për t'u modifikuar lehtë, sipas autorëve të tij, duhet të gjendet një sistem që gjeneron Ninja. Rekomandohen CMake dhe gyp.

Pro:

  • Shpresoj shumë

Cons:

  • Ju duhet një sistem tjetër për të pjellë Ninja
  • Pak përhapje

ninja

të tjerët

Ju mund të përdorni ndonjë sistem tjetër siç është shkrimi juaj bash ose python. Ekzistojnë gjithashtu gjeneratorë për gjuhë të tjera jo-amtare që mund të përdoren si Gradle, Maven, gyp, etj.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   abimaelmartell dijo

    Make nuk është një sistem përpilimi, është një gjenerator i binareve (ose synimeve) nga kodi i tij burimor. Mund të përdoret gjithashtu si një drejtues detyrash.

    Unë ndryshoj me ju që prodhimi BSD është më i gjerë në funksionalitet, prodhimi GNU është më i plotë, ka më shumë funksionalitet. Dhe këtë e them nga përvoja ime personale, në BSD gjithmonë kam për të instaluar GNU make sepse BSD make është shumë e thjeshtë në krahasim me GNU make.

    Pajtohem me ju që Automotools është mjaft i rëndë, unë preferoj të përdor vetëm Makefile. Skedarët e krijuar nga Autotools janë të vështira për të korrigjuar gabimet.

    Përshëndetje!

    1.    AdrianArroyoStreet dijo

      Faleminderit për komentin!
      Sipas mendimit tim, GNU make gjithmonë ka qenë më tradicionale dhe besnike ndaj programit origjinal make dhe BSD make ka qenë gjithmonë më inovative, por mund të kem vërejtur gjëra të tjera kur bëj krahasimin.

      Automjetet me të vërtetë janë një dhimbje koke e madhe. Si kontribues i sistemit operativ Haiku më është dashur të transportoj softuer me mjete automatike dhe është dreq. Nuk janë të pakta rastet që unë përfundova duke krijuar Makefile ose CMakeLists.txt para se ta rregulloj këtë rrëmujë.

  2.   Chuck Daniel dijo

    Tani jam duke përdorur Premake4, shumë i konfigurueshëm dhe i thjeshtë bazuar në skenarët Lua. Shikoni nëse nuk e dini.
    Urime për artikullin, referencë e thjeshtë dhe koncize, e shkëlqyeshme.

  3.   kockat dijo

    'bëj kontroll' përdoret për të kontrolluar përpilimin pas përdorimit të markës
    Pershendetje