2012-12-22 18 views
7

Kodu derlediğimizde, bir nesne dosyası oluşturulur. Bu nesne dosyasından, bağlantı sürecinde bir yürütülebilir dosya oluşturulur.Bir yürütülebilir dosya oluşturmak için neden bir nesne dosyası gerekli?

Neden bir nesne dosyasına ihtiyacımız var? Bir nesne dosyasının kullanımı nedir? Yürütülebilir bir dosya doğrudan oluşturulamıyor olabilir mi? Sonuçta, programı çalıştırmak için bir yürütülebilir dosya kullanıyoruz.

cevap

11

Nesne dosyaları, tam olarak yürütülebilir dosyaları (veya kitaplıkları) oluşturmak için kullanılan bağlantı dosyalarıdır.

Genellikle derleyici çıktınızı doğrudan "yürütülebilir" olabilir, sözdizimi derleyiciye bağlı olacaktır. Örneğin GCC'yi için:

gcc foo.c bar.c ... 

kalacak bir yürütülebilir ve bir ara nesne dosyası üretecektir (- ve daha sonra silinmiş ancak muhtemelen bir üretilmiş olacaktır).

Nesne dosyaları artımlı bir yapı oluşturmak için kullanılır. Her bir kaynak dosyayı (veya kaynak dosyaları grubunu) nesne dosyalarına derler ve daha sonra bunların hepsini bir yürütülebilir dosyaya bağlarsınız. Bu, yalnızca son kez oluşturduğunuzdan bu yana değiştirilen kaynak dosyaları yeniden derlemenize olanak tanır, bu da potansiyel olarak çok fazla zaman tasarrufu sağlar.
Ya da farklı yürütülebilir dosyaları bağlamak için aynı nesne dosyalarını kullanabilirsiniz (örneğin, hem yürütülebilir hem de paylaşılan bir kitaplık oluşturmak için derlemenizin parçalarını yeniden kullanın), yine de her zaman her şeyi derlemekle karşılaştırılan zaman ve kaynakları kaydedebilirsiniz.

Nesne dosyaları, teorik bir bakış açısından "gerekli" değildir. Onlar sadece çok pratiktir (ve aslında bazı (çoğu?) Araç gereçleriyle teknik olarak gerekli, montajcısının nasıl üretileceğini bildiği ve bağlayıcının nasıl bağlanacağını bildiği şeyler).

İlgili konular