写了一个mqtt的client程序,编译时报错如何解决?

2023-05-16

#include <stdio.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <string.h>
#include <unistd.h>
#include <vector>
#include <mutex>

#include "MQTTAsync.h"
#define PUB_MQTT_TOPIC           "service2wuxi"
#define PUB_MQTT_CLIENTID        "SERVICE_PUB_MQTT"
#define QOS                       0
#define KEY_MQTT_BROKER_ADDRESS   "172.0.0.1"
#define KEY_MQTT_BROKER_PORT     1883
#define BUFFER_SIZE              1024
int main()
{
    int ret;
    char input_msg[BUFFER_SIZE];
    char recv_msg[BUFFER_SIZE] = "hello this msg is send from yancheng! ";
    char address[] = "tcp://localhost:1883";
    //1.创建一个客户端对象
    MQTTAsync pub_client;
    //初始化MQTT Client选项
    MQTTAsync_connectOptions conn_opts = MQTTAsync_connectOptions_initializer;
    //声明消息token
    //MQTTClient_deliveryToken token;   
    //使用参数创建一个client,并将其赋值给之前声明的client
 MQTTAsync_create(&pub_client, address, PUB_MQTT_CLIENTID, MQTTCLIENT_PERSISTENCE_NONE, NULL);


    //MQTTAsync pub_client_ = client;
    MQTTAsync_setCallbacks(pub_client, NULL, NULL, NULL, NULL);
    //2.设置连接MQTT服务器的选项
    conn_opts.keepAliveInterval = 20;
        conn_opts.cleansession = 1;
        //conn_opts.username = USERNAME;
    //conn_opts.password = PASSWORD;
        conn_opts.onSuccess = NULL;
        conn_opts.automaticReconnect = 1;
        conn_opts.context = pub_client;
        MQTTAsync_connectOptions pub_opts_ = conn_opts;
        //使用MQTTClient_connect将client连接到服务器,使用指定的连接选项。成功则返回MQTTCLIENT_SUCCESS
        if ((ret = MQTTAsync_connect(pub_client, &conn_opts)) != MQTTASYNC_SUCCESS)
        {
                printf("Failed to start connect, return code %d\n", ret);
        }
    //初始化MQTT MQTTClient_message选项
    MQTTAsync_responseOptions opts = MQTTAsync_responseOptions_initializer;
    MQTTAsync_message pubmsg = MQTTAsync_message_initializer;
    opts.context = pub_client;
    pubmsg.payload = recv_msg;
    pubmsg.payloadlen = (int)strlen(recv_msg);
    pubmsg.qos = QOS;
    pubmsg.retained = 0;

    if ((ret = MQTTAsync_sendMessage(pub_client, PUB_MQTT_TOPIC, &pubmsg, &opts)) != MQTTASYNC_SUCCESS)
    {
        printf("MQTT sendMsg failed ,errCode-->%d", ret);
    }


    return 0;
}

编译时报错

v2x@ubuntu:~/Desktop/yancheng/mqttClient$ g++ test123.c -o test123 -std=c++11
/tmp/ccT4gVxQ.o: In function `main':
test123.c:(.text+0xf5): undefined reference to `MQTTAsync_create'
test123.c:(.text+0x119): undefined reference to `MQTTAsync_setCallbacks'
test123.c:(.text+0x185): undefined reference to `MQTTAsync_connect'
test123.c:(.text+0x383): undefined reference to `MQTTAsync_sendMessage'
collect2: error: ld returned 1 exit status
网上有人说缺少编译的库文件。

后来我到网上下载了mqtt 的源代码,编译了一下,结果编译出的库文件是arm架构的

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

写了一个mqtt的client程序,编译时报错如何解决? 的相关文章

  • STM32串口DMA方式发送数据

    文章目录 一 DMA介绍1 概括2 DMA由来2 1程序传送方式2 2中断传送方式2 3DMA原理 3 DMA具有的功能4 DMA传输方式5 DMA主要特征6 DMA处理7 DMA工作框图8 DMA工作传送过程 二 串口DMA方式发送数据1
  • 每日一练20210629

    1 下列叙述中正确的是 2021 06 29 21 59 14 A 算法的效率只与问题的规模有关 而与数据的存储无关B 算法的时间复杂度是指执行算法所需要的计算工作量C 数据的逻辑结构与存储结构是一一对应的D 算法的时间复杂度与空间复杂度一
  • Aborted (core dumped)

    在百度谷歌了无数次之后 xff0c 看了许多关于Aborted xff08 core dumped xff09 的解决方法后 xff0c 终于找到一个解决办法 文章来自 http blog 163 com wujiaxing009 64 1
  • slam开发心得

    slam是目前比较流行 xff0c 并且是门槛较高的一个领域 xff0c 它与人工智能紧密相关 自己想就这篇博客谈谈自己在这个领域2年多来的心得 回顾这2年来自己的学习过程 xff0c 可以说是艰辛 xff0c 自己不是搞软件开发的 xff
  • STM32基于FreeRTOS的多任务程序

    STM32基于FreeRTOS的多任务程序 任务要求FreeRTOS移植介绍应用 总结 任务要求 在STM32下完成一个基于FreeRTOS的多任务程序 xff0c 执行3个周期性task task1 xff0c 每间隔500ms闪烁 xf
  • conio包含的函数及作用

    conio h是TC特有的 xff0c 用于输入输出图形方面 conio h conio h不是C标准库中的头文件 conio是Console Input Output xff08 控制台输入输出 xff09 的简写 xff0c 其中定义了
  • 有关调音台的专业英文词汇

    一 2 Track 2轨磁带 xff08 in输入 out输出 xff09 AFL 61 After fader Listen 衰减后监听 xff08 推子后监听 xff09 xff0c 这个模式下 xff0c 监听输出的信号是来自于通道电
  • 各行业的英语术语(绝对精华 2)

    实用食品用语2 b 餐具 coffee pot 咖啡壶 coffee cup 咖啡杯 paper towel 纸巾 napkin 餐巾 table cloth 桌布 tea pot 茶壶 tea set 茶具 tea tray 茶盘 cad
  • 各行业的英语术语(绝对精华3)

    b 企业缩写词 b 5S管理 ABC 作業制成本制度 Activity Based Costing ABB 實施作業制預算制度 Activity Based Budgeting ABM 作業制成本管理 Activity Base Manag
  • 各行业的英语术语(绝对精华4)--房地产

    b 房地产英语1 b 房地产英语 part 1 English for Real Estate 入世以后 xff0c 跨国房地产交易越来越多 xff0c 涉外交易动辄千百万 xff1b 地道 准确 符合国际惯例的房地产英语无疑是促成交易 避
  • ROS学习笔记6(理解ROS话题)

    文章目录 1 启动1 1 roscore1 2 turtlesim1 3 turtel teleop key 2 ROS 话题2 1 使用rqt graph2 2 使用rostopic2 3 使用rostopic echo2 4 使用ros
  • Labview 子VI 生成Library Files

    建立 Lib 文件的方法 一个简单的方法可以让你封装所有的VI到LabVIEW的llb里面 执行下面的步骤即可 LabVIEW 8 x 1 到 File Save As 将打开一个另存为对话框窗口 2 选择 将层次结构复制到新位置 3 选择
  • Python爬虫——BeautifulSoup的基本使用

    Python爬虫 BeautifulSoup的基本使用 安装beautifulsoup4模块 pip span class token function install span beautifulsoup4 1 创建BeautifulSo
  • ubuntu下安装高版本clang-format

    问题 ubuntu 16 04版本没有clang format 9以上版本源 但较低版本的工具对一些格式化配置符号不支持 使用deb文件安装高版本的话要更新的依赖太多 系统依赖 xff0c 诸如libs libstsc 43 43 等 解决
  • ST-LINK 连接图

    stm32 JTAG 管脚 ST LINK V2 JTAG 管脚 JTAG 连接模式 TVCC xff08 1 xff09 STM32 3 3V xff1b 必须连接 ST LINK根据此调整输出电平 TRST xff08 3 xff09
  • 如何给金溢RSU配路网

    如何给RSU配路网 一 路网数据采集 xff1a 利用车载单元OBU的GPS定位模块在特定的路段 xff0c 选取两个点 xff0c 一个设定为起点 xff0c 一个终点 xff08 一般大概300 400米左右 xff09 中间不能有实体
  • Linux之read命令使用

    read命令 xff1a read 命令从标准输入中读取一行 xff0c 并把输入行的每个字段的值指定给 shell 变量 1 xff09 read后面的变量var可以只有一个 xff0c 也可以有多个 xff0c 这时如果输入多个数据 x
  • shell脚本中 “set -e” 的作用

    bin bash set e command 1 command 2 exit 0 你写的每个脚本都应该在文件开头加上set e 这句语句告诉bash如果任何语句的执行结果不是true则应该退出 这样的好处是防止错误像滚雪球般变大导致一个致
  • strcpy的使用

    include lt iostream gt include lt string h gt using namespace std int main char data 61 34 dhewdwehkfew qwdhqwhdj qwhdwq
  • 算法复杂度时间的体现举例

    1 1 1 1 1 1 n 这个样的数列相加 xff0c 不同的算法的复杂度对比 可以学习时间怎么用 include lt iostream gt include lt cmath gt include lt ctime gt using

随机推荐