خطأ في الربط :إشارة غير محددة إلى "avahi_alternative_service_name"
-
13-12-2019 - |
سؤال
أعلم أنني بحاجة إلى تحديد موقع هذا الرمز في المكتبة ..أحاول تجميع رمز اختبار يستند إلى avahi لعرض الخدمات.لكني أتلقى undefined reference to
avahi_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)