Kirjoittaja |
Viesti |
TK
| Keskiviikkona, 29. tammikuuta, 2003 - klo 20.13: | | Tuommoisen huomasin www.amiga-news.de:ssä eli StormC4.0 49.95euroa, tuohon hintaan jo kannattaa laittaa vaikkei koodailisikaan
|
JPQ
| Keskiviikkona, 29. tammikuuta, 2003 - klo 21.50: | | TK: No kannataisi varmasti jos just olisi rahaa. Ja onko tuo uuden hinta jos on mitähän se kohta Boogiella maksaa?
|
Jupp3
| Torstaina, 30. tammikuuta, 2003 - klo 11.26: | | No, itse koodaan GCC:llä kun moisen onnistuin asentamaan Grafiikkaakin saan ruudulle, niin miksi nyt vaihtamaan... Periaatteessahan kääntäjä on sama, mutta StormC:ssä on vain graafinen käyttöliittymä... Mut ei se nyt vaikeaa ole kirjoittaa gcc hello.c Btw, oliko muuten joku opiskelijatarjous tms.? Eivätkös joskus semmoista kaupanneet...
|
miksuh
| Torstaina, 30. tammikuuta, 2003 - klo 14.04: | | Jupp3: No ei ole joo Ja makefilet auttaa sit isommissa, useista tiedostoista koostuvissa, projekteissa.
|
Jani Kuituniemi
| Torstaina, 30. tammikuuta, 2003 - klo 15.52: | | GCC:tä itsekin käytän.. onko jossain jotain ohjeita siihen miten tommosia Makefilejä tehdään?
|
Jon
| Torstaina, 30. tammikuuta, 2003 - klo 16.20: | | Maken mukana Tietenkin kannata katsoa mallia open-source projekteista (esim. AmiBlocks, heh heh)
|
JPQ
| Torstaina, 30. tammikuuta, 2003 - klo 17.45: | | Jupp3: ei ole vaikeaa kirjoittaa gcc hello.c olet oikeassa mutta muuten tuota GCC:tä en saanut tapeltua aikoinani vaikka sain sairaan hyvät neuvot käyttökuntoon.
|
miksuh
| Torstaina, 30. tammikuuta, 2003 - klo 20.08: | | No okei makefileen kirjotuksen lyhyt oppimäärä, 1ov Makefile tiedostot vaihtelee melkosesti hyvin yksinkertasesta hyvin monimutkaseen. Ihan aluksi, jos ei ole ennen noita kirjottanu, ei kannata edes yrittää muutakun ymmärtää makefileen perusrakenne. Muutamalla perusasailla pääsee oikein hyvin alkuun. Sitten kokemuksen lisääntyessä voi mennä pidemmälle ja viilata makefilejä hienommiksi. Tässä on nyt ykssinkertanen esimerkki makefileestä, joka kääntää ja linkkaa kolmen tiedoston projektin . Projektissa on siis tiedostot: make.c file1.c file2.c Lisäksi on headerifileet: file1.h file2.h Makefileen alussa määritellään käytetyt muuttujat. CPU = CPU jolle koodi käännetään CC = käytettävä kääntäjä LD = käytettävä linkkeri RM = fileiden delotointikomento PROG = luotavan lopullisen exen tiedostonimi OBJS = lista projektin objekti-tiedostoista OPTFLAGS = optimointiflagit CFLAGS = kääntäjälle annettavat optiot LDFLAGS = linkkerille annettavat optiot Muuttujien määrittelyjen jälkeen seuraa joukko sääntöjä (rules) joiden perusteella tiedostot käännetään ensin objekti-tiedostoiksi. Lisäksi on yksi sääntö joka kuvaa miten objektitiedostot linkataan exeksi. Ja sääntö, joka kuvaa miten objektitiedostot poistetaan hakemistosta. Viimeisin sääntö ei ole välttämätön. Jokainen sääntö koostuu kohteesta, siitä mitkä tiedostot vaikuttaa siihen esim käännetäänkö kohde ja säännön toiminnan kuvauksesta. Eli main.o: on säännön nimi(kohde) joka kuvaa miten main.o-objektifile luodaan. Samalla rivillä olevat .c ja .h fileet kertoo make:lle mitkä tiedostot vaikuttaa siihen luodaanko uusi main.o. Eli mikäli jokin tuossa listattu .c tai .h file on uudempia kuin main.o niin sääntö suoritetaan ja main.o luodaan uudestaan. Eli nuo määritellyt fileet määritelee ehdon sille suoritetaanko sääntö vai ei. Rivi $(CC) $(CFLAGS) -c main.c kuvaa miten main.o luodaan. Eli tuo rivi suoritetaan kun sääntösuoritetaan. Kun tuo makefile on talletettu riittää että annetaan komento: make tai make all Mulla loppuu kohta aika kesken, kun koulu menee kii joten toi on kirjotettu ulkomuistista ja suht kiireessä, eli siinä voi olla puutteita ja virheitä. Mut katotaan vaikka huomena sit enempi tota. --- CPU = -m68020 OPTFLAGS= -O2 CFLAGS =-I. -I./includes $(CPU) $(OPTFLAGS) LDFLAGS = -noixemul CC = gcc LD = gcc RM = /bin/rm -f PROG = MyApp OBJS = main.o file1.o file2.o all: $(PROG) $(PROG): $(OBJS) $(LD) $(LDFLAGS) $(OBJS) -o $(PROG) main.o: main.c file1.h file2.h $(CC) $(CFLAGS) -c main.c file1.o: file1.c file1.h $(CC) $(CFLAGS) -c file1.c file2.o: file2.c file2.h $(CC) $(CFLAGS) -c file2.c clean: $(RM) $(PROG) $(OBJS) ---
|
miksuh
| Torstaina, 30. tammikuuta, 2003 - klo 20.09: | | Äh tossa piti toki olla välilyöntejä/tabulaattoreita sisennyksenä.. Ne ei nyt tietty sit näkyny.
|
miksuh
| Torstaina, 30. tammikuuta, 2003 - klo 20.11: | | make.c == main.c tottakai
|
miksuh
| Torstaina, 30. tammikuuta, 2003 - klo 20.19: | | GNU make osaa kaikkea kivaa, kuten automaattisen riippuvuksien (dependency) generointi jne, mutta niihin ei kannata puuttua ennenkun makefileen perusidea on hanskassa.
|
Jani Kuituniemi
| Torstaina, 30. tammikuuta, 2003 - klo 20.26: | | miksuh: kiitos.. tuo selvensi
|
|