リンクエラー:「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) で利用できます。
所属していません StackOverflow