Arkantos
01/07/2005, 22:43
Arkadaşlar çok uzun zamandır kafama takılan bir soru var.GCC ile derleme ve eniyileştirme parametrelerini büyük programları derlemek için (örneğin kde 3.4.1) nasıl ayarlamalıyız ? CHOST, CFLAGS ve LFLAGS nedir? Ne işe yarar?
CFLAGS="-O3 -mtune=pentium4 -fomit-frame-pointer -mfpmath=sse -msse -mmmx"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2"
Örneğin ben PIV bir makine kullanıyorum ve derleme seçeneklerini bu şekilde belirterek programları kaynak kodundan kuran bir dağıtım kullanıyorum.
Bunlardan bazıları zaten isminden anlaşılıyor. -march (machine architecture) herhalde 'makine mimarisi' . Pentium IV'lerin i686 olarak bilindiğini bilsem de bu i386, i486 ve i686 neye göre dediğimizi hala anlamamışımdır. Sanırım -O1 ile hiç eniyileştirme yapılmıyor değil mi ? Peki buradaki diğer derleyici seçeneklerinin ne işe yaradığını en azından hıza etkisi olup olmadığını bilen var mı? Örneğin bu çocuk -O3 seçeneği ile derleme süresi uzasa da programların çalışma hızı artar demiş. Başka birisi de programları -O3 seçeneği ile derlemek programın çalıştırılabilir dosyasının boyutunu arttırır ve masaüstü programları için -O2 seçeneği daha iyi bir seçenektir (Programlar daha hızlı yüklenir) demiş.
Siz ne dersiniz ?!
Peki burada kullanılmayan:
-pipe -ftracer -ffast-math -momit-leaf-frame-pointers
ne işe yarıyor. Bunları da bilmediğim için kullanmadım? Bunları da kullanmalımıyım ?
Son olarak -march ile -mtune'un bir farkı var mı? Burada bir de -march=pentium4 demelimiydim?
Unutmadan bu arada kullandığım derleyici sürümü gcc 3.4.4
Yanıtlar için şimdiden teşekkürler ..
CFLAGS="-O3 -mtune=pentium4 -fomit-frame-pointer -mfpmath=sse -msse -mmmx"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2"
Örneğin ben PIV bir makine kullanıyorum ve derleme seçeneklerini bu şekilde belirterek programları kaynak kodundan kuran bir dağıtım kullanıyorum.
Bunlardan bazıları zaten isminden anlaşılıyor. -march (machine architecture) herhalde 'makine mimarisi' . Pentium IV'lerin i686 olarak bilindiğini bilsem de bu i386, i486 ve i686 neye göre dediğimizi hala anlamamışımdır. Sanırım -O1 ile hiç eniyileştirme yapılmıyor değil mi ? Peki buradaki diğer derleyici seçeneklerinin ne işe yaradığını en azından hıza etkisi olup olmadığını bilen var mı? Örneğin bu çocuk -O3 seçeneği ile derleme süresi uzasa da programların çalışma hızı artar demiş. Başka birisi de programları -O3 seçeneği ile derlemek programın çalıştırılabilir dosyasının boyutunu arttırır ve masaüstü programları için -O2 seçeneği daha iyi bir seçenektir (Programlar daha hızlı yüklenir) demiş.
Siz ne dersiniz ?!
Peki burada kullanılmayan:
-pipe -ftracer -ffast-math -momit-leaf-frame-pointers
ne işe yarıyor. Bunları da bilmediğim için kullanmadım? Bunları da kullanmalımıyım ?
Son olarak -march ile -mtune'un bir farkı var mı? Burada bir de -march=pentium4 demelimiydim?
Unutmadan bu arada kullandığım derleyici sürümü gcc 3.4.4
Yanıtlar için şimdiden teşekkürler ..