2010-09-30 12 views

cevap

57

Derleyici, insan tarafından okunabilir bir programlama dilinde yazılan kodu, işlemciniz tarafından anlaşılan bir makine kodu temsiline dönüştürür. Bu adım, nesnesi dosyalarını oluşturur.

Bu adım derleyici tarafından yapıldıktan sonra, çalıştırılabilen ve çalıştırılabilen bir çalışma yürütülebilir dosyası oluşturmak için başka bir adım gereklidir; yani, çağrılan kodun derlemek için derlenmiş kodun çağırması gereken işlev çağrılarını ilişkilendirin (örneğin). iş. Örneğin, kodunuz C standart kitaplığında rutin olan sprintf'u arayabilir. Kodunuzun, sprintf tarafından sağlanan gerçek hizmeti hiçbir şey yoktur, yalnızca çağrılması gerektiğini bildirir, ancak asıl kod, ortak C kitaplığında bir yerde bulunur. Bu (ve diğer birçok) bağlantıyı gerçekleştirmek için bağlayıcı çağrılmalıdır. Bağlandıktan sonra, çalışabilecek gerçek yürütülebilir dosyayı edinin.

+20

+1 iyi bir açıklama. Çoğu işletim sisteminde, aslında * iki * linker bulunduğunu unutmayın: Derleme sonrasında çalışan ve çalıştırılabilir dosyayı (genellikle "linker" olarak adlandırılır) ve dinamik olarak yüklenen kütüphanelerde (aka .so veya. dll) uygulama zamanında (genellikle "dinamik linker" olarak adlandırılır). – sleske

19

Bir derleyici, kaynak kodundan nesne kodu dosyaları (makine dili) üretir. Bu nesne kodu dosyalarını bir yürütülebilir dosyayla birleştirir. BirA linker, bir linker Bu nesne kodu dosyalarını bir yürütülebilir dosyayla birleştirir.

Birçok IDE bunları arka arkaya çağırır, böylece hiçbir zaman bağlayıcıyı iş başında göremezsiniz. Bazı diller/derleyiciler farklı bir bağlayıcıya sahip değildir ve derleyici tarafından çalışmasının bir parçası olarak bağlantı kurulur.