SORU
8 EYLÜL 2014, PAZARTESİ


C kullanılmayan libs bağlantı önlemek için yeterince akıllı bağlantı.

C linker nasıl uzak tamamen anlıyorum ve bu konuda özel bir sorum var.

Şu: var

Formundadır.h

namespace Utils
{
    void func1();
    void func2();
}

Utils.cpp

#include "some_huge_lib" // needed only by func2()

namespace Utils
{
    void func1() { /* do something */ }
    void func2() { /* make use of some functions defined in some_huge_lib */ }
}

main.cpp

int main()
{
  Utils::func1()
}

Amacım mümkün olduğunca küçük ikili dosyaları oluşturmak için.

Benim sorum, some_huge_lib çıkış nesne dosyası dahil olacak?

CEVAP
8 EYLÜL 2014, PAZARTESİ


Veya büyük kütüphaneler karşı da dahil olmak üzere bağlama genellikle sürece bir şey olmazkullanıno şeyler. Bağlayıcıgerekirgerçekleştirmek ölü kod eleme ve böylece sağlamak, bu yapı zaman bunu yapamazsın büyük ikili ile bir sürü kullanılmayan kod (okuma derleyici/bağlayıcı kılavuzu öğrenmek için daha fazla, bu değil zorlanan tarafından C standart).

İkili boyutu da (ama büyük ölçüde derleme zamanı artırabilir, cfr. artış olmayacak başlıklarını sürü de dahil olmak üzere önceden derlenmiş bir üstbilgi). Bazı özel durumlar, nesneler ve dinamik kütüphaneler genel için (soyulmuş olamaz. Ben de to read this passage tavsiye (gccbirden çok bölümlere ayırarak kod ile ilgili.

Eğer kullanırsanız . performansları hakkında son bir uyarı: ^strong>çokpozisyon bağımlı kod (sadece harita değil, göreli uzaklıklar ama ihtiyaçları olan herhangi bir adres yani kod 'Başlangıç maliyeti olacak anında düzeltme' tehcir ya da benzer bir tablo ile).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • macpulenta

    macpulenta

    9 EYLÜL 2006
  • NextKsa

    NextKsa

    7 EKİM 2009
  • Pál Zoltán Illés

    Pál Zoltán

    30 NİSAN 2007