GCC hogyan

Fórumok

Hello!
Az lenne a kerdesem, hogy a gcc alapertelmezesit at lehet-e allitani?
Marmint peldaul .c vegzodesu fajlok eseten ne az ansi szabvanyt vegye figyelembe hanem pl. az iso-t. Tudom -std=c99, de ezt hogy lehet alapertelmezette tenni? Van a GCC-nek valamilyen konfiguracios fajlja? (Mar elore latom a sok oltast)

Hozzászólások

export CFLAGS=
Es ezt az /etc/bashrc vagy /etc/bash.profiles (amelyikben a PATH meg egyeb szerepel). Vagy a user hasonlonevu file-aban.

Egyetlen fájlnál is van értelme.
A make eléggé bonyolult, egy ideig én is szívtam vele anno.
Ha nem kell másokkal együtdolgoznod vagy nagy projektekbe beledolgozni, akkor ajánlom, hogy nézd meg a scons-t. Sokat tud és sokmindent nagyon egyszerűen lehet benne megcsinálni. Amikor áttértem, akkor olyan dolgot megcsináltam könnyedén, aminek már nem volt kedvem utánajárni a make esetén. Persze valamiben meg körülményesebb.

egy specs fájlban tárol mindent.
Nálam: /usr/lib/gcc-lib/i586-uhu-linux/3.3.4/specs
Legkönnyebben úgy tudod kideríteni, hogy hol van, hogy a gcc csomagját (rpm, deb, akármi) megnézed, hogy hova pakol cuccokat.
Sajnos a specs fájl felépítésében most nem tudok segíteni, eddig nem volt rá szükségem, hogy belenyúljak.

:) lol.

Használj csak Makefile-t.
http://www.gnu.org/software/make/manual/make.html
A kézikönyv elsőre tömény, de kelleni fog. Előbb kereshetsz valami tutorialt is. Nézz példákat.

Amúgy meg az alapja egész egyszerű (később bonyolódik), gyorstalpaló:


mit_készítsen:   miből
(tab)            hogyan...

pl.:



CFLAGS           = -std=c99 -Wall -ggdb

program:         modul-1.o modul-2.o
(tab)            gcc   -o $@   $+

modul-1.o:       modul-1.c
(tab)            gcc   $(CFLAGS)   -o $@   -c $<

modul-2.o:       modul-2.c
(tab)            gcc   $(CFLAGS)   -o $@   -c $<

Ami külön szépsége a dolognak, hogy a modul-1.o és modul2.o szabályok nem is kellenek, ugyanis van hozzá saját belső szabály kb.ugyanezzel a tartalommal. (Jobb, mert nem gcc -t használ, hanem $(CC) -t. Az már csak hab a tortán, hogy normális esetben nem kell a -c opció mellé a -o kimenet megadása sem.)