SORU
23 HAZİRAN 2009, Salı


Neden C matematik kitaplığı bağlantı var mı?

Eğer ben dahil <stdlib.h> <stdio.h> C program yok link bu derleme, ama bağlantı için <math.h> kullanarak -lm gcc, örneğin:

gcc test.c -o test -lm

Bunun nedeni nedir? Neden açıkça matematik kitaplığı bağlantı var ama diğer kütüphaneler olmaz mı?

CEVAP
23 HAZİRAN 2009, Salı


Fonksiyonları stdlib.h stdio.h uygulamaları libc.so (libc.a statik bağlama), bağlantılı halinde yürütülebilir varsayılan (gibi -lc belirtilen). GCC -nostdlib -nodefaultlibs seçenekleri ile bu otomatik bağlantı önlemek için talimat olabilir.

math.h matematik fonksiyonları libm.so (veya statik bağlama için libm.a) uygulamaları, libm varsayılan olarak bağlantılı değil. Vardırhisterik kuru üzüm*/libc *17 Bu split için, hiçbiri çok inandırıcı tarihsel nedenler.

İlginçtir, C libstdc libm, GCC (g ) ile bir C programını derleme, otomatik olarak libm bağlantılı ve çok çalışma gerektirir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Charles Renaud

    Charles Rena

    10 Kasım 2007
  • George McCarron

    George McCar

    29 Mayıs 2013
  • Techmoan

    Techmoan

    31 Mayıs 2009