|
|
| Rivi 135: |
Rivi 135: |
| g++ src/main.o src/funktiot.o -g -lm -o ohjelma | | g++ src/main.o src/funktiot.o -g -lm -o ohjelma |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
| == Esimerkki ==
| |
| Esimerkki Makefilestä, jota käytetään kääntämään kahdesta [[C plus plus | C++]]-kielisestä lähdekooditiedostosta (<tt>src/main.cpp</tt> ja <tt>src/funktiot.cpp</tt>).
| |
|
| |
| #Objektitiedostot
| |
| PROJEKTI = src/main.o src/funktiot.o
| |
|
| |
| #Käännösasetukset
| |
| LDFLAGS = -lm
| |
| CXXFLAGS = -g
| |
|
| |
| #Oletuksena suoritetaan osio "softa"
| |
| all: softa
| |
|
| |
| #Tiedot, mistä lähdekooditiedostoista objektitiedostot käännetään
| |
| src/main.o: src/main.cpp
| |
| src/funktiot.o: src/funktiot.cpp
| |
|
| |
| #Kääntö
| |
| softa:
| |
| g++ $(PROJEKTI) $(CXXFLAGS) $(LDFLAGS) -o ohjelma
| |
|
| |
| #Clean, joka poistaa tarpeettomat objektitiedostot
| |
| clean:
| |
| rm -f $(PROJEKTI)
| |
|
| |
| Nyt projektin hakemistossa voidaan ajaa komento make, jolloin [[make]] kääntää projektin:
| |
| $make
| |
| g++ -g -c -o src/main.o src/main.cpp
| |
| g++ -g -c -o src/funktiot.o src/funktiot.cpp
| |
| g++ src/main.o src/funktiot.o -g -o ohjelma
| |
| Huomaa, että jos nyt muokkaamme tiedostoa src/main.cpp ja ajamme maken uudelleen, tiedostoa src/funktiot.cpp ei käännetä uudestaan:
| |
| $[[touch]] src/main.cpp
| |
| $make
| |
| g++ -g -c -o src/main.o src/main.cpp
| |
| g++ src/main.o src/funktiot.o -g -o ohjelma
| |
|
| |
|
| == Katso myös == | | == Katso myös == |
| *[[Make]] | | * [[Make]] |
| *[[Cmake]] | | * [[CMake]] |
| *[[autotools]] | | * [[Autotools]] |
| | | * [[Jam]] |
| ==Aiheesta muualla==
| | * [[SCons]] |
| *[http://www.flug.fi/ohjeita/linux-ohjelmointi.html#Makefile FLUG:in Linux-ohjelmointi]-opas. | |
|
| |
|
| [[Luokka:Kehitystyökalut]] | | [[Luokka:Kehitystyökalut]] |