Math.h kullanan bir C programı nasıl derlenir?


15

Math.h başlık dosyasında ve karekök işlevini kullandığımda sorun yaşıyorum sqrt(d). Ama derleyicim bunu desteklemiyor. Lütfen bu sorun hakkında bana bilgi verin.

Ubuntu sürümüm 2012.


2
Her ne kadar programlama sorularını seviyoruz - soru Ubuntu ile ilgili olmalıdır - sorunun burada ne olduğunu ayrıntılı olarak açıklayabilir misiniz - örnekler vb?
fossfreedom

sqrt ((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1) gibi) ... derleyicim bu komutu desteklemiyor
shreya

1
lütfen sorunuzu düzenleyerek yanıtlayın. Kod örneklerini, nasıl derlediğinizi, ubuntu'nun sürümünü, derleyicinin sürümünü, başka bir derleyici / dağıtımda yapmaya çalıştınız mı? Ne olur vb?
fossfreedom

1
@shreya Yazdığınız kodla ilgili sorunlara ilişkin sorular, sorunun kendisinde belirli bir sorunu tanımlamalı ve yeniden oluşturmak için geçerli bir kod içermelidir. Rehberlik için SSCCE.org adresine bakınız .
Braiam

4
Bunun konu dışı olduğunu düşünmüyorum. Windows gibi diğer birçok işletim sisteminde, matematik kütüphanesini C programlarında kullanmak için özel bir bağlayıcı seçeneği geçmek gereksizdir. Bazı Unix benzeri işletim sistemlerinde bile standart C kitaplığı uygulaması bunu gerektirmez. Bu, birçok kullanıcının Ubuntu gibi GNU / Linux sistemlerine geçtiklerinde karşılaştığı bir sorundur. Sorunun belirli bir hatayı içermek için daha iyi yazılmasını isterdim - eğer bu konuyu ele alırsak, belki de onu düzenlemeliyiz - ama bu genel bir C programlama sorusu değil, bu gccUbuntu'da nasıl kullanılacağı hakkında bir soru .
Eliah Kagan

Yanıtlar:


25

Komutunuzun -lmsonuna ekleyin gcc.

Ubuntu gibi GNU / Linux sistemlerinde GCC'nin tüm son sürümleriyle, matematik kütüphanesini kullandığınızda, açıkça ona bağlamanız gerekir. Standart C kitaplığının geri kalanıyla birlikte otomatik olarak bağlanmaz.

Komut satırında gccveya g++komutuyla derliyorsanız, bunu komutun sonuna koyarak-lm gerçekleştirirsiniz .

Örneğin: gcc -o foo foo.c -lm


5

LINUX'ta GCC veya G ++ kullanarak math.h kütüphanesi ile bir C programı derleyecekseniz, compile komutundan sonra –lm seçeneğini kullanmanız gerekir .

gcc xyz.c -o xyz -lm

Buraya,

gcc derleyici komutudur (derleyici adı)
xyz.c bir kaynak dosya adıdır.
-o çıktı dosyasını belirleme seçeneğidir.
xyz çıktı dosyasının adıdır.
lm matematik kütüphanesinde (againt bağlantıya bir seçenektir libm ).

daha fazla ayrıntı için üzerinde tam makale içeren bağlantı.
Linux'ta math.h ile C programını derleme.


Linking komutundan sonra, compile komutunu değil. (Nitpick için özür dilerim, ama doğru yapmak diğer durumları anlamaya yardımcı olur).
mousomer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.