Tässä osiossa C++-ohjelman käännösprosessia havainnollistetaan GCC-kääntäjäkokoelman
(GNU Compiler Collection) avulla. Esimerkeissä käytetään sen C++-käännöksiin tarkoitettua
g++-komentoa, joka ohjaa sekä käännöstä että linkitystä. Samat perusvaiheet
pätevät myös muihin kääntäjiin, kuten Clangiin ja Microsoftin MSVC:hen, mutta komennot
ja valitsimet voivat poiketa toisistaan.
Seuraava komento kääntää lähdekooditiedostot x1.cpp ja x2.cpp
objektitiedostoiksi x1.o ja x2.o:
g++ -c x1.cpp x2.cpp
Seuraava komento linkittää objektitiedostot yhdeksi suoritettavaksi ohjelmaksi:
g++ x1.o x2.o
Sama käännös ja linkitys saadaan aikaan yhdellä komennolla:
g++ x1.cpp x2.cpp
Tämä prosessi on hyvä ymmärtää, mutta kehitysympäristöt kuten Qt Creator käyttävät rakennustyökaluja, jotka kääntävät tavallisesti uudelleen vain muuttuneet lähdetiedostot sekä ne lähdetiedostot, jotka riippuvat muuttuneista otsikkotiedostoista. Muut objektitiedostot voidaan käyttää uudelleen, minkä jälkeen ohjelma linkitetään tarvittaessa uudelleen. Näin koko projektia ei tarvitse kääntää alusta jokaisen muutoksen jälkeen, mikä nopeuttaa kehitystyötä.
CMake on työkalu, joka luo projektin CMakeLists.txt-tiedostossa olevien määritysten
perusteella rakennustiedostot esimerkiksi Makelle tai Ninjalle.
Make ja Ninja ovat rakennustyökaluja, jotka automatisoivat ohjelman käännöksen ja linkityksen.
Ne seuraavat tiedostojen riippuvuuksia ja suorittavat vain muutosten edellyttämät rakennusvaiheet.
Voit lukea niistä lisää Peatutorin Qt-oppaasta osiosta Cmake,Make ja Ninja.