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
1 | #define deger 1 |
ö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ı
1 2 3 | #ifdef DEBUG printf("..."); #endif |
şeklinde yazmak ve -DDEBUG parametresini kullanmak olabilir. böylelikle -DDEBUG parametresi kullanılmadığı zamanlar kodun bu kısmı derlenmemiş olur.
Pingback: Fehmi Can SAĞLAM » c/c++ için yüksek performanslı debug satırları