2011-06-06 10 views

cevap

7

Kütüphaneler, kendilerinden istenen sembollere dayalı olarak talep üzerine yüklenir, bu nedenle başka bir şeyin gerektirdiği bir sembolü sağlayan kütüphanenin başka bir şeye uyması gerekir. Bu tarihseldir; Muhtemelen modern bir sistemin sembolleri otomatik olarak çözmesi, döngüyü mantıklı bir şekilde ele alması (kuralın nedeni olmak; kütüphaneleri sırayla ve gerektiğinde birçok kez belirtmek suretiyle bağımlılık döngülerini el ile koparmanız), ancak g++ geleneksel kuralı takip eder ve satıcı ld s. (GNU ld her yerde çalışmıyor, bu yüzden sembol bağımlılık döngülerini çözmek için ona güvenmek mümkün olmayacaktı. GNU ld'un çalıştığı platformlarda bile önyükleme endişeleri de var.) Benzer şekilde, diğer linker yönelimli seçenekler de etkiledikleri şeylere göre doğru sırada belirtilen (örneğin, bir -L seçeneği belirtilen dizinde yaşayan bir kitaplıktan önce gelmelidir; bir dizindeki bir kitaplık standart bir dizinde aynı ada sahip bir kitaplığı gölgelerse bu önemli olabilir)).

+0

Önyükleme endişeleri? Ne gibi? – Maxpm

+1

GNU 'ld'ye özgü bir davranışa bağlı olarak gcc' /' g ++ 'ise, GNU takım zincirinin çalışmasını sağlamak için hangi sıraya göre yapılması gerektiğine ilişkin karmaşıklıklara girersiniz. gcc'/'g ++', birçok GNU programı gcc' uzantısına dayandığından ve GNU 'ld'ye özgü bir davranışa bağlı olarak bunu engelleyeceğinden, önyükleme amaçları için standart satıcı araçları ile büyük boyutlara çıkmaktadır. – geekosaur