Belirli işlevlerin tanımını içeren kitaplık nasıl bulunur? Bağlayıcı hatası alıyorum.GNU yapı sistemi soru
cevap
Sen ikili ihraç sembolleri listelemek için nm
komut satırı aracını kullanabilirsiniz: the manual göre
~/src> cat nm-test.c
static int plus_four(int x)
{
return x + 4;
}
int sum_plus_four(int a, int b)
{
return plus_four(a + b);
}
int product_plus_four(int a, int b)
{
return plus_four(a * b);
}
~/src> gcc -c nm-test.c
~/src> nm ./nm-test.o
00000000 t plus_four
00000023 T product_plus_four
0000000b T sum_plus_four
, 't' sembolü kodu (metin) segmentinde olduğu anlamına gelir ve büyük araçlar halka açık.
Aradığınız bir simgeniz varsa, nm
numaralarını kullanarak bir kütüphane tarafından erişilebilir sembolleri erişilebilir hale getirebilirsiniz. grep:
$ find -name lib*.a /example/library/path | xargs nm | grep -E "T $SYMBOL_TO_FIND"
Bu komut satırı, test edilmemiş bir çizimdir, ancak bu kavramı göstermelidir. C standardı API'sinin bir parçasıysa, o zaman sadece man
'u çalıştırın, işlevin nerede tanımlandığını açıkça belirtmelidir.
Kitaplığı program dışı bir şekilde bulmak isterseniz, LSB Navigator'u yararlı bulabilirsiniz. Fonksiyonu arama kutusuna girin ve yeşil "durum" ile satırdaki kütüphaneyi kontrol edin. (Eğer -lrt
ile bağlar, böylece, yukarıda tarif edilen örnekte, librt
mq_unlink
için doğru bir kütüphane)
http://coldattic.info/pic/165509391387.png
Bu fonksiyonu içeren "klasik" kütüphane olacaktır. Sadece bu kütüphaneyle bağlantı kurun ve neredeyse tüm Linux sistemlerinde çalışacaktır.
Not: Önerdiğim aracın geliştiricilerinden biriydim.
- 1. Sublime Gradle için Yapı Sistemi
- 2. yüce metin 3: çalışma nasıl bir haskell yapı sistemi?
- 3. Subshime Text 3 içinde jshint kullanmaya çalışırken yapı sistemi yok
- 4. Yapı
- 5. GNU/Linux
- 6. GNU Make. Tek bir Makefile
- 7. Imperative vs Declarative yapı sistemleri
- 8. Bir React uygulamasının yapı sistemi olmayan farklı JS dosyalarında bileşenleri olabilir mi?
- 9. Yapı
- 10. Yapı
- 11. Performans nasıl analiz edilir GNU Dosyaları oluştur
- 12. GNU C++ hata iletileri
- 13. GNU klişe yapmak
- 14. GNU farkları için alternatifler?
- 15. GNU Ekran yenileme sorunu
- 16. C Gnu makefile
- 17. GNU alternatif joker karakterdir?
- 18. gnu linker bölümü
- 19. GNU m4: kaçan backticks (`)
- 20. Soru() 'ın
- 21. MySQL soru
- 22. Seçici soru
- 23. MySql soru
- 24. Mark Gradle yapı dengesiz yapı
- 25. Android NDK artımlı yapı
- 26. üretim sistemi
- 27. Photoshop Sistemi Geri Al Sistem
- 28. C/C++: Yapı veya dolgu verileri bir yapıda
- 29. Android.mk Ben soru zaten istendi veya soru aptal etmektir denetlenecektir değil umut
- 30. Win32 üzerinde GNU gettext kullanarak
Bu, işlev adı verilen kitaplık yerine, kitaplık verilen işlev adlarını bulamaz mı? –
@Pete: Doğru, ancak bilgileri dışa aktardığından, kitaplık dosyalarını kopyalamak için kullanılabilir. – unwind
Teşekkürler .. Anladım .. – Dinesh