11/06/2008
hepimizin bildiği gibi gcc pek çok parametre alabiliyor ve bu parametrelere göre oluşan sonuç çok farklılık gösterebiliyor. bu parametrelerden belki de en önemlisi optimizasyon için kullanılan -O parametresi.
-O0
optimize etme. bu varsayılan ayardır. yani herhangi bir -O parametresi verilmezse -O0 kabul edilir.
-O ya da -O1
optimize et. bu durumda derleyici çok fazla zaman almayan optimizasyon işlemleri uygulayarak hem kod boyutunu, hem de çalışma zamanını optimize etmeye çalışır.
-O2
daha fazla optimize et. derleyici, boyut-hız trade-off'u olmayan bütün optimizasyonları gerçekleştirir. -O ile kıyaslandığında daha performanslı kod üretir.
-O3
daha da fazla optimize et. bu seçenek genelde -O2 den daha hızlı fakat boyut olarak daha büyük kod üretir.
-Os
boyut için optimize et. kod boyutunu artırmayan -O2 optimizasyonlarının yanında kod boyutunu azaltmak için tasarlanmış bazı optimizasyonlar da uygulanır.
bunun dışında bir de -D parametresinden bahsetmek istiyorum. bu parametre ile macro tanımlaması yapılabilir. örneğin -Ddeger şeklinde bir kullanım
[cc lang="c"]
#define deger 1
[/cc]
önişlemci komutuna karşılık gelir. -Dmymacro=... kullanımı ile de herhangi bir macro tanımı bu parametre aracılığı ile yapılabilir. Bu parametrenin en güzel kullanımı debug için kullandığınız printf() satırlarını
[cc lang="c"]
#ifdef DEBUG
printf("...");
#endif
[/cc]
şeklinde yazmak ve -DDEBUG parametresini kullanmak olabilir. böylelikle -DDEBUG parametresi kullanılmadığı zamanlar kodun bu kısmı derlenmemiş olur.
Follow me on Twitter