【ZMQ/QT】Windows11 + Qt 安装配置zmq(亲测可用)

目录

0.背景

1.思路总览

2.详细操作

1)windows11下载vcpkg(C/C++库管理工具,为了下载zmq方便)

2)vcpkg下zeromq

3)下载后拷贝到工程路径

4)在qt项目的pro文件中增加相关lib和include的链接


0.背景

环境:windows11 + qt5.14.0(MinGW-64bit) + 跨平台链接ZMQ

我的项目概述:zmq主要是做通信,原本我的Server端和Client端都是在linux上(ubuntu22.04),但由于外部需求,Client端需要转移到Windows11,Server仍在linux上。

跨平台移植Client端的前提:windows11上有zmq,安装配置的过程踩了很多坑,最后才装好,所以整理此篇zmq安装配置过程,从零搭建zmq的环境,到qt上的使用。

DeepSeek介绍zmq:

ZeroMQ(简称 ZMQ)是一个高性能、异步消息传递库,用于构建分布式和并行应用。它提供了类似Socket的API,但支持多种通信模式,比原始TCP/UDP更灵活。

1.思路总览

1)windows11下载vcpkg(为了下载zmq方便)

2)vcpkg下zeromq(获得include和lib文件)

3)下载后拷贝到工程路径

4)在qt项目的pro文件中增加相关lib和include的链接

2.详细操作

1)windows11下载vcpkg(C/C++库管理工具,为了下载zmq方便)

【用的是git bash 环境】

i)克隆vcpkg仓库

git clone https://github.com/microsoft/vcpkg.git

2)vcpkg下zeromq

i)进入vcpkg文件夹

cd vcpkg/

ii)下载czmq和zeromq(实际用到的是zeromq,我第一次下错了,下成czmq了)

./vcpkg.exe install czmq

./vcpkg.exe install zeromq

下载czmq时较慢(我用了3分钟左右),zeromq时较快(因为之前下过czmq),需耐心等待

iii)下载成功后,可以在vcpkg的packages文件夹中看到对应的包

3)下载后拷贝到工程路径

i)进入zeromq的文件夹中,我需要用到include文件夹和lib文件夹

lib文件夹中,只拷贝【libzmq-mt-4_3_5.lib】文件即可,【pkgconfig】文件夹拷不拷都行

ii)拷到我的项目下(我的项目叫RbtSurgicalRecords),我自己起了一个名字【libzmq-435】,然后从vcpkg中将include和lib拷过来即可

4)在qt项目的pro文件中增加相关lib和include的链接

在.pro文件中,增加INCLUDEPATH和LIBS

cpp 复制代码
INCLUDEPATH += $$PWD/libzmq-435/include
win32 {
LIBS += -L$$PWD/libzmq-435/lib/ -llibzmq-mt-4_3_5
}

然后在我的Client端就可以包含头文件使用了

cpp 复制代码
#include <zmq.h>

安装配置后就可以在qt代码中使用了

zmq官网:ZeroMQ | C

安装vcpgk参考:Vcpkg C/C++库管理工具安装和使用教程(链接VS2019)_vcpkg 安装-CSDN博客

--END--

相关推荐
慧都小项4 天前
当边缘AI上产线:QtitanDocking 如何让工业 HMI 实现多视图协同
人工智能·qt·ui·边缘计算·qt6.3
Quz4 天前
QML SwipeDelegate 滑动委托
qt
Quz4 天前
QML 列表中的四种委托:ItemDelegate、CheckDelegate、RadioDelegate、SwitchDelegate
qt
实心儿儿4 天前
Qt — 显示类控件
qt
江湖人称菠萝包5 天前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter9-Qt Charts
笔记·qt·qt5
扶尔魔ocy5 天前
【QT android】环境安装及第一个QT项目
qt·andriod开发
江湖人称菠萝包5 天前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter10-Data Visualization
笔记·qt·qt5
Cx330❀5 天前
Qt 常用控件属性与底层机制详解:从窗口半透明、浮点数陷阱到 QSS 与焦点策略
qt·ui·图形渲染
Quz5 天前
QML DelegateChooser:多条件组合与按列选择委托
qt
Quz5 天前
QML DelegateChooser:按角色选择委托与按索引选择委托
qt