SORU
11 Kasım 2013, PAZARTESİ


Garip bağlantı hatası: DSO komut satırı eksik

Openvswitch-1.5.0, derleme olduğumda aşağıdaki derleme hatası karşılaştığım:

gcc-Wall -Wno-tabela-karşılaştırma -Wpointer-arith-Wstrict-prototip -Wdeclaration-sonra-deyim -Wformat-güvenlik -Wswitch-numaralama -Wunused-parameter -Wstrict-aliasing -Wbad-fonksiyon-döküm -Wcast-Hizala -Wstrict-prototip -Bozkır-stil tanımına Wmissing prototip Wmissing-alan-başlatıcılar -Wno-geçersiz kılma-ınit -g -O2 -ihracat-dinamik-lpthread-o ovs-dpctl ovs-dpctl yardımcı/yardımcı/.o lib/libopenvswitch.bir /home/jyyoo/src/dpdk//lib/librte_eal kurmak.bir /home/jyyoo/src/dpdk//lib/libethdev kurmak.bir /home/jyyoo/src/dpdk//lib/librte_cmdline kurmak.bir /home/jyyoo/src/dpdk//lib/librte_hash kurmak.bir /home/jyyoo/src/dpdk//lib/librte_lpm kurmak.bir /home/jyyoo/src/dpdk//lib/librte_mbuf kurmak.bir /home/jyyoo/src/dpdk//lib/librte_ring kurmak.bir /home/jyyoo/src/dpdk//lib/librte_mempool kurmak.bir /home/jyyoo/src/dpdk//lib/librte_malloc kurmak.a-Hafif Raylı Sistem -lm /usr/bin/ld: /home/jyyoo/src/dpdk/build/lib/librte_eal.bir gerçek.o): tanımsız başvuru sembol 'pthread_create@@GLIBC_2.2.5' /x86_64-linux-gnu/libpthread lib.bu yüzden.0: hata sembolleri ekleme: DSO eksik komut satırı

libpthread, semboller görmeye çalışırsam iyi görünüyor.

$ readelf -s /lib/x86_64-linux-gnu/libpthread.so.0 | grep pthread_create
   199: 0000000000008220  2814 FUNC    GLOBAL DEFAULT   13 pthread_create@@GLIBC_2.2.5
   173: 0000000000008220  2814 FUNC    LOCAL  DEFAULT   13 __pthread_create_2_1
   462: 0000000000008220  2814 FUNC    GLOBAL DEFAULT   13 pthread_create@@GLIBC_2.2

Herhangi bir ipucu veya ipucu verebilir misiniz?

CEVAP
11 Kasım 2013, PAZARTESİ


Komut satırında kütüphane bahsetmeliyizsonranesne derleniyor dosyaları:

gcc -Wstrict-prototip -Duvar -Wno-tabela-karşılaştırma -Wpointer-arith -Wdeclaration-sonra-deyim -Wformat-güvenlik -Wswitch-numaralama -Wunused-parameter -Wstrict-aliasing -Wbad-fonksiyon-döküm -Wcast-Hizala -Wstrict-prototip -Bozkır-stil tanımına Wmissing prototip Wmissing-alan-başlatıcılar -Wno-geçersiz kılma-ınit -g -O2 -ihracat-dinamik -o yarar/ovs-dpctl yarar/ovs-dpctl.o lib/libopenvswitch./home/jyyoo/src/dpdk//lib/librte_eal kurmak./home/jyyoo/src/dpdk/build/lib/libethdev.//librte_cmdline home/jyyoo/src/dpdk/build/lib.//librte_hash home/jyyoo/src/dpdk/build/lib.//librte_lpm home/jyyoo/src/dpdk/build/lib.//librte_mbuf home/jyyoo/src/dpdk/build/lib./home/jyyoo/src/dpdk//lib/librte_ring kurmak.//librte_mempool home/jyyoo/src/dpdk/build/lib.//librte_malloc home/jyyoo/src/dpdk/build/lib.-Hafif Raylı Sistem-lm -lpthread

Açıklama: bağlama modülleri sırasını bağlıdır. Semboller ilk talep edip, bir kütüphaneden bağlı. İlk kitaplıklarını kullanan modüller ve kütüphaneler belirtmelisiniz. Bu gibi:

gcc x.o y.o z.o -la -lb -lc

Döngüsel bir bağımlılık var diye ayrıca, komut satırında aynı kütüphane birkaç kez belirtmeniz gerekir. Durumda sembol libb komut satırından simgesi olmalı libb ihtiyaçları olmalıdır:

gcc x.o y.o z.o -la -lb -lc -lb

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andrew_Huang

    Andrew_Huang

    10 ŞUBAT 2006
  • Attempts at least

    Attempts at

    1 Ocak 2007
  • NightShader1

    NightShader1

    25 Temmuz 2006