خطأ في الربط :إشارة غير محددة إلى "avahi_alternative_service_name"

StackOverflow https://stackoverflow.com//questions/12712203

  •  13-12-2019
  •  | 
  •  

سؤال

أعلم أنني بحاجة إلى تحديد موقع هذا الرمز في المكتبة ..أحاول تجميع رمز اختبار يستند إلى avahi لعرض الخدمات.لكني أتلقى undefined reference toavahi_alternative_service_name''..لا أعرف أي مكتبة تحتوي على هذا، فأنا أستخدم UBUNTU 12.04.حاولت تثبيت عدة حزم لكن لم أنجح..أي فكرة شكرا ..

لقد قمت بتثبيت الحزم التالية

dpkg --get-selections | grep avahi
avahi-autoipd                   install
avahi-daemon                    install
avahi-utils                     install
libavahi-cil-dev                install
libavahi-client-dev             install
libavahi-client3                install
libavahi-client3:i386           install
libavahi-common-data            install
libavahi-common-data:i386       install
libavahi-common-dev             install
libavahi-common3                install
libavahi-common3:i386           install
libavahi-core7                  install
libavahi-glib-dev               install
libavahi-glib1                  install
libavahi-gobject0               install
libavahi-ui-dev                 install
libavahi-ui-gtk3-0              install
libavahi-ui0                    install
libavahi1.0-cil                 install

يأمر
gcc -fpermissive testAvahi.c -o testAvahi

هل كانت مفيدة؟

المحلول

في الواقع، هناك حاجة إلى تحديد موقع المكتبات ثم الحاجة إلى تمريرها إلى الرابط، لذلك نجح الأمر التالي بالنسبة لي

gcc -fpermissive testAvahi.c -o testAvahi -L/usr/lib/x86_64-linux-gnu/ -lavahi-client -lavahi-common

نصائح أخرى

إذا كان لديك مجلد مشترك حيث تضع مكتبات C ++ الخاصة بك ، فيمكنك التحقق من البحث عن الوظيفة باستخدام أمر NM شيء مثل

cd /usr/lib

nm -AC * | grep avahi_alternative_service_name

الأداة المساعدة nm متاحة في binutils(sudo apt-get install binutils)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top