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

  • JamesAtiPhone

    JamesAtiPhon

    16 EYLÜL 2010
  • mist64

    mist64

    30 Mayıs 2006
  • wwjoshdew

    wwjoshdew

    1 AĞUSTOS 2007