Kokoamisjärjestelmät. Yksinkertaisen määrityksen lisäksi tee, tee asennus

Kaikki tai melkein kaikki (ja jos et ole onnekas), meidän on täytynyt koota ohjelma lähdekoodista. Itse asiassa useimmissa projekteissa riittää, että suoritat ./configure && make && make install ohjelman asentamiseksi, mutta aiomme nähdä erilaisia ​​vaihtoehtoja:

GNU-merkki

GNU Make on matalan tason kokoamisjärjestelmä, muutamia asioita on määritetty eikä testejä suoriteta:

Plussat:

  • Erittäin laajalle levinnyt
  • Helppo ymmärtää
  • Nopeasti

miinukset:

  • Hieman konfiguroitavissa
  • Vaikea ylläpitää
  • Ei tee testejä

make

BSD-merkki

BSD Make on toinen Make-versio, jota tällä hetkellä * BSD -käyttöjärjestelmät käyttävät. Se eroaa GNU Make: sta, koska se on kattavin BSD Make -ominaisuus toiminnallisuudessa, vaikka se on vähemmän levinnyt.

Plussat:

  • Nopeasti
  • Helppo ymmärtää
  • Enemmän ominaisuuksia kuin GNU Make

miinukset:

  • Ei levinnyt Linux-maailmassa
  • Ei tee testejä
  • Hieman konfiguroitavissa
  • Vaikea ylläpitää

make

Automaattiset välineet

Autotools on virallinen GNU-järjestelmä, ja se luo komentosarjan nimeltä configure, joka meidän on kutsuttava vastaavan Makefile-tiedoston luomiseksi GNU Make -sovelluksesta. Se on levinnyt laajasti, mutta yhä useammat ihmiset (minä mukaan lukien) ajattelevat, että se on liian hankala, vaikea, hidas eikä kovin yhteensopiva.

Plussat:

  • Erittäin konfiguroitavissa
  • Erittäin laajalle levinnyt

miinukset:

  • Vähän siirrettävyyttä muiden kuin UNIX-järjestelmien välillä
  • Suorita liian monta testiä (tarkista KAIKKI, ja KAIKKI ON KAIKKI)
  • Erittäin hidas asetettaessa
  • Huono taaksepäin yhteensopivuus

./configure && make

CTee

(Suosikkijärjestelmäni) CMake on järjestelmä, joka korjaa Autotoolsin puutteet monilta osin, kuten sen kauhea taaksepäin yhteensopivuus ja siirrettävyys. Parannetaan myös testijärjestelmää, joka on erittäin konfiguroitavissa kunkin projektin tarpeisiin. Totuus on, että yhä useammat projektit käyttävät CMakea, kuten KDE, PortAudio, Ogre3D jne. Tunnistamme tämäntyyppiset järjestelmät CMakeLists.txt-tiedoston ansiosta, joka luo Makefile-tiedoston tai projektin Eclipse- tai CodeBlocks-ohjelmalle.

Plussat:

  • Nopeasti
  • Suuri alustojen välinen tuki
  • Voit määrittää testit hyvin muokattavalla tavalla

miinukset:

  • Aluksi vaikea ymmärtää
  • Sinun on työskenneltävä abstraktin kanssa, joka voi olla aluksi pelottavaa
  • Vähän levinnyt, vaikka vähitellen se kasvaa

cmake . && make

Q Tee

QMake on Trolltechin suunnittelema järjestelmä Qt: ssä tehtyjen projektien kokoamiseksi. Tällä tavalla qmake painottaa paljon Qt: tä ja on yleensä IDE: n, kuten QtCreatorin, käyttämä muoto. Se on melko suosittu Qt-projekteissa, mutta sitä ei löydy tämän ympäristön ulkopuolelta:

Plussat:

  • Erittäin hyvin integroitu Qt: n kanssa
  • Nopeasti
  • Hyvä monitasoinen Qt

miinukset:

  • Melko harvinainen Qt-sovellusten ulkopuolella

qmake . && make

SCons

SCons on Python-pohjainen järjestelmä C / C ++ -projektien kokoamiseen. Toisin kuin Autotools, CMake tai QMake; SCons ei rakenna Makefile-tiedostoa. SCons on erittäin muokattavissa, mutta se on ehkä hitain yksinkertaisissa toiminnoissa
Plussat:

  • Helppo muokkaus
  • Suorita oikeudenmukaiset testit

miinukset:

  • Vähän levinnyt
  • hidas

scons

Tehosta hilloa

Boost.Jam on Perforce Jam -versio, jota käytetään suosituissa C ++ Boost -kirjastoissa, vaikka kokoamisjärjestelmää voidaan käyttää erikseen. Toisin kuin GNU Make, Boost.Jam käyttää Jamfileitä, jotka ovat parannettu versio Makefileistä. Ne ovat melko suosittuja BeOS / Zeta / Haiku-ympäristössä.

Plussat:

  • Nopeasti
  • Lyhyin kirjoittaa

miinukset:

  • Vähän levinnyt
  • Testien suorittamisen vaikeus

bjam

Ninja

Ninja on Googlen kehittämä järjestelmä tarjoamaan erittäin nopea rakennusjärjestelmä, joka on alun perin suunniteltu Chromium-projektin järjestelmäksi. Ninjaa ei ole suunniteltu niin, että sitä olisi helppo muokata, sen omien kirjoittajien mukaan on löydettävä järjestelmä, joka tuottaa Ninjan. Suositeltavia ovat CMake ja gyp.

Plussat:

  • Muy rápido

miinukset:

  • Tarvitset toisen järjestelmän Ninjan kutemiseen
  • Vähän levinnyt

ninja

Muu

Voit käyttää mitä tahansa muuta järjestelmää, kuten omaa bash- tai python-komentosarjaasi. On myös generaattoreita muille ei-äidinkielille, joita voidaan käyttää, kuten Gradle, Maven, gyp jne.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   abimaelmartell dijo

    Make ei ole kokoamisjärjestelmä, se on binäärien (tai kohteiden) generaattori lähdekoodistaan. Sitä voidaan käyttää myös tehtävän juoksijana.

    Olen eri mieltä kanssasi siitä, että BSD-merkki on toiminnallisuutta laajempi, GNU-merkki on täydellisempi, sillä on enemmän toiminnallisuutta. Ja sanon tämän omasta kokemuksestani, BSD: ssä minun on aina asennettava GNU make, koska BSD make on hyvin yksinkertainen verrattuna GNU makeen.

    Olen kanssasi samaa mieltä siitä, että Autotools on melko hankala, haluan käyttää vain Makefileä. Autotoolsin luomia tiedostoja on vaikea virheenkorjaus.

    Tervehdys!

    1.    AdrianArroyoKatu dijo

      Kiitos kommentista!
      Mielestäni GNU-merkki on aina ollut perinteisempää ja uskollisempaa alkuperäiselle merkkiohjelmalle ja BSD-merkki on aina ollut innovatiivisempi, mutta voi olla, että olen huomannut muita asioita vertailussa.

      Autotyökalut ovat todella iso päänsärky. Haiku-käyttöjärjestelmän avustajana minun on pitänyt siirtää ohjelmistoja autotooleilla, ja se on helvettiä. Ei ole olemassa muutamia tapauksia, joissa päädyin luomaan Makefile- tai CMakeLists.txt-tiedoston ennen tämän ongelman korjaamista.

  2.   Chuck daniels dijo

    Käytän tällä hetkellä Premake4: ää, joka on hyvin konfiguroitavissa ja yksinkertainen Lua-skripteihin perustuen. Katso, jos et tiedä sitä.
    Onnittelut artikkelista, yksinkertainen ja ytimekäs, erinomainen viite.

  3.   luut dijo

    'make check' käytetään tarkistamaan kokoomateos merkin käytön jälkeen
    Terveisiä