【问题标题】:How to compile using libmosquitto如何使用 libmosquitto 进行编译
【发布时间】:2013-10-31 13:06:13
【问题描述】:

我正在尝试编译 libmosquitto 网站上提供的代码示例(在底部): 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

有人可以给我一些关于如何编译这个简单示例的提示吗? 谢谢

【问题讨论】:

  • 我认为你必须动态地链接你的程序,试试gcc mosquito.c -o mosquito -lmosquitto(是的,-l 选项的位置很关键)。

标签: c gcc mqtt mosquitto


【解决方案1】:

您必须将-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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 2021-08-18
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    相关资源
    最近更新 更多