PDA

Tam Sürümünü Görmek İçin : Makefile'da Library sırası (Unix)


Darkstar
28/11/2004, 01:28
Merhabalar,

Geçenlerde karşılaştığım ilginç bir olayı aktarmak istiyorum: Unix sistemimde birden fazla library kullanan programlarımı make etmeye çalıştığımda linker'ın library'lerin sırasını değiştirdiğim zaman hata mesajı verdiğini gözlemledim. Mesela

-lgraphs -ltables

şeklinde yazınca hata veriyor, fakat

-ltables -lgraphs

şeklinde yazınca sorunsuz çalışıyor.

Daha önceleri Windows'ta çalışmış bir kişi olarak unix'te böyle bir şeyle karşılaşmak çok garibime gitti. Windows'ta hiç böyle birşey yasamamıstım. Unixte neden böyle oldugunun nedenini bilen varmı?


acehreli
28/11/2004, 10:52
Linux altindaki derleyiciler baglayici olarak geleneksel olarak ld'yi cagirirlar. ld'nin tasarimi sirasinda da baglanacak adlar aranirken belirli bir sira izlemesine karar verilmistir. Bu durum icinden cikilmaz dongusel baglantilara neden olabilecegi icin (ornegin, A B'ye, B C'ye, C de yine A'ya bagimli gibi), ld'ye --start-group ve --end-group komut secenekleri eklenmistir.

Yani ozel bir nedeni oldugunu sanmiyorum.

Ali