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
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.
Neden Matematik yapıyor.yuvarlak(0.499...
Neden Matematik yapıyor.(2.5) dönüş 2 ...
Neden eşitsizlik olarak test edilir (!...
SignalR: Neden Kalıcı Bağlantı vs Hub ...
Neden l-matematik optimal yapanlarla f...