4

libmosquitto Web サイト (下部) で入手可能なコード例をコンパイルしようとしています: http://mosquitto.org/man/libmosquitto-3.html

Ubuntu 12.04 を使用しており、libmosquitto1 および libmosquitto1-dev パッケージをインストールしました。それらをインストールする前に、mosquitto リポジトリを追加しました。

sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get update

次のように例をコンパイルしようとしています:

gcc -lmosquitto mosquito.c -o mosquito

しかし、次のエラーが発生します。

/tmp/cc6eU8kw.o: In function `my_connect_callback':
mosquito.c:(.text+0xf8): undefined reference to `mosquitto_subscribe'
/tmp/cc6eU8kw.o: In function `main':
mosquito.c:(.text+0x298): undefined reference to `mosquitto_lib_init'
mosquito.c:(.text+0x2b4): undefined reference to `mosquitto_new'
mosquito.c:(.text+0x310): undefined reference to `mosquitto_log_callback_set'
mosquito.c:(.text+0x324): undefined reference to `mosquitto_connect_callback_set'
mosquito.c:(.text+0x338): undefined reference to `mosquitto_message_callback_set'
mosquito.c:(.text+0x34c): undefined reference to `mosquitto_subscribe_callback_set'
mosquito.c:(.text+0x364): undefined reference to `mosquitto_connect'
mosquito.c:(.text+0x3b4): undefined reference to `mosquitto_loop'
mosquito.c:(.text+0x3c8): undefined reference to `mosquitto_destroy'
mosquito.c:(.text+0x3d0): undefined reference to `mosquitto_lib_cleanup'
collect2: ld returned 1 exit status

この簡単な例をコンパイルする方法について、誰かが私にいくつかのヒントを教えてくれますか? ありがとう

4

1 に答える 1

12

-lmosquittoを最後 (ソース ファイルの後)に配置する必要があります。

gcc mosquito.c -lmosquitto -o mosquito
# or
gcc mosquito.c -o mosquito -lmosquitto
# or
gcc -o mosquito mosquito.c -lmosquitto

またはより良い:

gcc -Wall -Wextra -pedantic -o mosquito mosquito.c -lmosquitto
于 2013-10-31T15:14:02.800 に答える