Aynı ada sahip bir statik ve dinamik kitaplığım var: libclsocket.a ve libclsocket.so Bağlamak istediğim kütüphaneyi belirlediğimde, kütüphane olarak sadece -lclsocket girin. Programım mükemmel uyumludur ve çalışır, ancak hangi kütüphaneyi kullanıyorum? statik kütüphane veya dinamik kütüphane? Arkadaşımı programıma vermek istiyorum ve emin değilim eğer kütüphaneleri serbest bırakmaya dahil etmem gerekiyorsa. C++, CodeLite, PCLinuxOS 2010Linux'ta statik veya dinamik bir kütüphaneye bağ verip bağlamadığımı nasıl anlarım?
cevap
Sen yürütülebilir üzerinde ldd
çalışan ve görme deneyebilirsiniz bağımlılıkları listesinde gerektiği gibi algılanan .bu beraberindeki.
ldd adam sayfası here olduğunu. Eğer -static
bayrağını kullanırsanız
Paylaşılan kitaplıklara bağlanıyor. Peki, nasıl statik bir lib ile bağlantı kurabilirim? Ayrıca paylaşılan kütüphaneler için varsayılanları kabul ediyorum. – TheFuzz
, tüm bileşenlerin statik yapılacaktır. Ve -l
paylaşılan kütüphaneleri içerebilir. Bu nedenle, statik kitaplık dosya adını belirtmek (örneğin, /usr/lib/libfoo.a
ile, örneğin, -l
önceden eklendi), istediğiniz efekti elde etmelidir.
- 1. Haskell bir statik kütüphaneye nasıl derlenir?
- 2. Statik veya dinamik destek kitaplığım var mı?
- 3. Projenin dışındaki bir kütüphaneye statik olarak bağlanmak için CMake'i kullanma
- 4. rangy kütüphaneye
- 5. , bir uygulama projesini bir kütüphaneye nasıl değiştirebilirim?
- 6. CSS kopmaz bir bağ
- 7. Statik kütüphane ve dinamik bir
- 8. Swift uygulaması: Statik kütüphaneye içe çerçeveyi aktarırken “Gerekli modülü eksik”
- 9. Python'da sembolik bir bağ kopyalanıyor
- 10. Bir web sitesinin iframe kabul edip etmediğini nasıl anlarım?
- 11. NumPy'nin bir görünüm veya kopya oluşturup oluşturmadığını nasıl anlarım?
- 12. Doküman sisteminde statik ve dinamik içerik - dinamik içerik nasıl oluşturulur?
- 13. Bir sınıf bir Yardımcı veya Hizmet olduğunda ne anlarım?
- 14. Statik kütüphaneleri tek bir
- 15. Firebase Analytics'i kütüphaneye ekle
- 16. Dinamik olarak genel statik oluşturma
- 17. herhangi parantezler ayraç veya bağ varsa ters eğik çizgi
- 18. "(.). (.)" Yi nasıl anlarım?
- 19. debian rules dosyası bir sembolik bağ oluştur
- 20. C++ uygulamasıyla C# statik kütüphanesi nasıl derlenir?
- 21. Statik bir sınıfa sahip bir görünüme dinamik bir sınıf ekleyin
- 22. Hata bir bağ kapalı başlatıcı listesinde
- 23. İlk statik değişken veya statik blok yüklenecek?
- 24. Tüm bir android uygulamayı kütüphaneye paketleyebilir miyim?
- 25. Bir kaydı neden #destroy() yapamadığımı nasıl anlarım?
- 26. Bir Bölge'nin başarıyla güncellendiğini nasıl anlarım?
- 27. MinGW ile Statik ve Dinamik/Paylaşımlı Bağlantı
- 28. Bir yazarın kapatılıp kapatılmadığını nasıl anlarım?
- 29. C# Dll statik ve dinamik bağlama
- 30. ManualResetEvent'in sinyalli veya sinyalsiz olup olmadığını nasıl anlarım?
GCC ile oluştururken '-static 'bayrağı belirtmediniz, büyük olasılıkla paylaşılan nesneye bağlanıyorsunuz. @Soo Wei Tan'ın yanıtladığı gibi, çalışma zamanı bağlayıcı bağımlılarını belirlemek için ikilide 'ldd' kullanabilirsiniz. – birryree
İstenen kitaplığın statik olarak bağlanması gerektiğini belirtebilir miyim? – TheFuzz
kütüphanenin tam adını geçerek seçici bir şekilde statik link yapabilirsiniz. Gcc -o OutFile -l: libclsocket.a' gibi. ':' Not, bu çok önemlidir. Bu davranışın resmi belgelerini öğrenmek istiyorum, ancak gcc'nin man sayfaları bu kullanımdan bahsetmiyor. –
birryree