一、安装ZeroMQ前的准备

1. 安装必须的库

  • 安装ZeroMQ之前先安装下面的库
sudo apt-get install libtool
sudo apt-get install pkg-config
sudo apt-get install build-essential
sudo apt-get install autoconf
sudo apt-get install automake

2. 安装Sodium加密库(可选的)

  • Sodium是一个流行、易于使用的软件库。主要用于加密、解密、签名和生成密码哈希等等。这是一个可移植的、跨编译器支持、可安装的,基于 NaCl 开发,提供一个兼容 API。Sodium的⽬标是提供构建更⾼级别加密⼯具所需的所有核⼼操作
  • 加密库的安装是可选的,也可以不安装(详情见“二”中安装ZerMQ时的“–without-libsodium”选项)
  • 下载、进去目录
git clone git://github.com/jedisct1/libsodium.gitcd libsodium

  • 输入下面的命令进行配置安装
./autogen.sh -s./configure && make checksudo make install



  • 安装完成之后动态库文件默认在/usr/local/lib/目录下,头文件默认在/usr/local/include/目录下

  • 执行下面的命令重新加载动态库

sudo ldconfig

二、安装ZeroMQ

1. 下载、解压

  • 下载安装包:

    • 到官网下载最新的ZeroMQ安装包:http://download.zeromq.org/
    • 或者在github上下载:https://github.com/zeromq/zeromq4-1/releases
  • 此处我们是在github中下载的4.1.7的releases版本
wget https://github.com/zeromq/zeromq4-1/releases/download/v4.1.7/zeromq-4.1.7.tar.gz

  • 下载完之后解压、并进入文件夹:
tar -xvf zeromq-4.1.7.tar.gzcd zeromq-4.1.7


2. 配置

  • 进行配置:

    • –prefix选项:如果不指定prefix选项,可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share
./configure

  • 配置完成之后如下图所示,产生Makefile文件:
  • 备注①:如果配置时产生下面的错误,那么配置的时候添加“–without-libsodium”选项即可,表示我们不使用Sodium加密库,上面我们对Sodium已经介绍过了
./configure --without-libsodium

  • 备注②: 想用arm-linux-gcc版本的,那么就的添加–host参数,以下其他操作都是相同,但是最后一步,需要将编译成功的lib下的库文件libzmq.so.5复制到ARM开发板的lib库文件夹当中
./configure --host=arm-none-linux-gnueabi

3. 编译与安装

  • 下面开始编译与安装:
sudo make
sudo make install


  • 安装完成之后动态库文件默认在/usr/local/lib/目录下,头文件默认在/usr/local/include/目录下

  • 执行下面的命令重新加载动态库

sudo ldconfig

4. arm-linux-gcc的配置(可选)

  • 如果是做arm开发的需要这一步,否则跳过这一步
  • 将libzmq.so.5复制到ARM文件系统的lib文件夹下
sudo cp /usr/local/lib/libzmq.so.5 /你的ARM文件系统路径/lib/

三、代码测试

1. 代码如下

  • 下面是一个服务端代码hwserver.c
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <assert.h>
#include <zmq.h>int main (void)
{/*  Socket to talk to clients    */void *context = zmq_ctx_new ();void *responder = zmq_socket (context, ZMQ_REP);int rc = zmq_bind (responder, "tcp://*:5555");assert (rc == 0);while(1) {char buffer [10];zmq_recv (responder, buffer, 10, 0);printf ("Received Hello\n");sleep (1);          /*Do some 'work'*/zmq_send (responder, "World", 5, 0);}return 0;
}
  • 编译时记得加上-lmq选项,使用下面的gcc命令编译也可以(gcc改为g++也可以)
gcc -o hwserver hwserver.c -lzmq

四、添加其他语言头文件(C++为例)

  • 上面我们下载的ZerMQ安装包是release版本的,默认只有<zmq.h>头文件,这个文件是ZeroMQ开发的C语言版本。如果想要使用C++开发版本的<zmq.hpp>头文件,那么需要自己下载zmq.hpp文件,然后复制到我们ZeroMQ安装路径的include目录下就可以了
  • 方法为:
    • 进入连接下载压缩包https://github.com/zeromq/cppzmq/archive/master.zip,下载完成之后解压进入目录
    • 里面有一个zmq.hpp文件,将这个文件拷贝到ZeroMQ库的头文件目录下即可
wget https://github.com/zeromq/cppzmq/archive/master.zip
unzip master.zip
cd cppzmq-master
sudo cp ./zmq.hpp /usr/local/include

1. 代码如下

  • 下载我们重写书写服务端代码,使用zmq.hpp头文件。如下:
#include <zmq.hpp>
#include <string>
#include <iostream>
#include <unistd.h>int main () {// Prepare our context and socketzmq::context_t context (1);zmq::socket_t socket (context, ZMQ_REP);socket.bind ("tcp://*:5555");while (true) {zmq::message_t request;// Wait for next request from clientsocket.recv (&request);std::cout << "Received Hello" << std::endl;// Do some 'work'sleep (1);// Send reply back to clientzmq::message_t reply (5);memcpy ((void *) reply.data (), "World", 5);socket.send (reply);}return 0;
}

编译成功:

g++ -o hwserver hwserver.cpp -lzmq

————————————————
版权声明:本文为CSDN博主「董少、」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41453285/article/details/105989698

ZeroMQ:02---Linux下ZeroMQ的编译安装与运行(Ubuntu为例)相关推荐

  1. Python 3.10版本及其依赖项 Linux下源码编译 安装到指定路径/目录

    Python 3.10版本及其依赖项 Linux下源码编译 安装到指定路径/目录 安装需求 准备工作 Python及其依赖项 libffi glibc GDBM mpdecimal bz2 xz re ...

  2. 【Python 笔记】Linux 下源码编译安装 python

    本文记录在 Linux 上源码编译安装 python 的过程. 文章目录 1. 源码编译安装说明 2. 安装 python2.7 3. 安装 python3.6 1. 源码编译安装说明 安装过程比我想 ...

  3. Linux 下源码编译安装 vim 8.1

    前言 目前 linux 的各个发行版基本上都是带了一个 vi 编辑器的,而本文要说的 vim 编辑器对 vi 做了一些优化升级,更好用.当我们需要远程操作一台 linux 服务器的时候,只能使用命令行 ...

  4. Linux下源码编译安装新版libxcb

    前言 上一篇文章提到,linux 下编译Qt源码如果要用到Quick的话,那么运行时会依赖qxcb库,而编译生成qxcb库就需要先安装libxcb,并且最低要求 版本大于1.9.1 Requires ...

  5. linux下caffe-gpu的编译安装

    服务器的环境 Ubuntu18.04, python3.6 CUDA 10.0, cuDNN 7.6.3 opencv3.4.6 查看cuda和cudnn版本 nvcc -V cat /usr/loc ...

  6. Linux下源码编译安装Python3

    操作系统:Centos 下载源码包 下载地址 https://www.python.org/downloads/release/python-365/ 解压 # tar -zxvf Python-3. ...

  7. Linux下源码编译安装Redis及如何后台启动Redis

    操作系统:Centos 下载源码包 http://download.redis.io/releases/redis-4.0.9.tar.gz 解压 # tar -zxvf redis-4.0.9.ta ...

  8. (转)linux下oracle instant client安装和运行

    1.首先要知道什么是ORACLE的客户端: Oracle Instant client 是oracle提供的简便客户端, 支持多种平台. 可从oracle网站下载, 下载地址为 http://www. ...

  9. 在 Linux 下用 CMAKE 编译安装 OpenCV 3.2.0

    [安装相关软件和库] 1.安装CMAKE:这里使用apt-get来安装; CMAKE 是一个跨平台编译工具,能够输出各种makefile,和project 文件,指导编译器编译,对CMAKE具体的可以 ...

  10. 【OpenCV】在Linux下用CMAKE编译安装OpenCV3.2.0

    [安装相关软件和库] 1.安装CMAKE:这里使用apt-get来安装; CMAKE 是一个跨平台编译工具,能够输出各种makefile,和project 文件,指导编译器编译,对CMAKE具体的可以 ...

最新文章

  1. 一个fork短码的扩展版本
  2. Android gallery详解
  3. python.freelycode.com-不完整的Http读取和Python中的Requests库
  4. 算法学习之百钱买百鸡
  5. 三、糖醋鲤鱼(Sweet and sour carp)
  6. ABAP设置输入焦点和表格控件行数的注意事项
  7. 使用Samba实现文件共享
  8. frp 后台地址_Frp后台自动启动的几个方法
  9. PHP8编译swoole出错,swoole自定义错误的方法
  10. ADT安装好在Eclipse后运行模型Android提示Re-installation fai...
  11. 曝微信低调上线“银行储蓄”服务,这是越来越像支付宝的节奏?
  12. 扬帆技术论坛系统封装工具 SPAT v 5.5.3.6_BETA1[官方最新版]
  13. GRE+托福四个半月复习计划
  14. Win11局域网内安装IIS
  15. 正则表达式(Regular Expression)基本概念及理解
  16. ansys的kbc_ANSYS APDL 应用技巧
  17. 无法上网的N种解决方法
  18. Qt数据库应用11-通用数据生成器
  19. 手把手带二大爷用EasyDL实现戴口罩检测APP
  20. Android 关机时的radio相关关闭流程

热门文章

  1. 大学c语言程序上机考试试题,C语言上机考试试题练习(2)
  2. 恶搞程序(想来试试吗)
  3. 抖音短视频无水印下载的方法
  4. 东元服务器型号,东元服务器参数怎么设置
  5. web201~213学习使用sqlmap
  6. [转] 史上最搞笑的成语谜语
  7. 惠头条自媒体怎么选择领域,惠头条如何爆文
  8. 商业分享:“拼团”式购物,让顾客在购物平台里省钱赚钱
  9. 只知道杂志名称,年份,期号,页数,怎么查文献题目?
  10. 安捷伦网络分析仪面板介绍