ZeroMQ:02---Linux下ZeroMQ的编译安装与运行(Ubuntu为例)
一、安装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为例)相关推荐
- Python 3.10版本及其依赖项 Linux下源码编译 安装到指定路径/目录
Python 3.10版本及其依赖项 Linux下源码编译 安装到指定路径/目录 安装需求 准备工作 Python及其依赖项 libffi glibc GDBM mpdecimal bz2 xz re ...
- 【Python 笔记】Linux 下源码编译安装 python
本文记录在 Linux 上源码编译安装 python 的过程. 文章目录 1. 源码编译安装说明 2. 安装 python2.7 3. 安装 python3.6 1. 源码编译安装说明 安装过程比我想 ...
- Linux 下源码编译安装 vim 8.1
前言 目前 linux 的各个发行版基本上都是带了一个 vi 编辑器的,而本文要说的 vim 编辑器对 vi 做了一些优化升级,更好用.当我们需要远程操作一台 linux 服务器的时候,只能使用命令行 ...
- Linux下源码编译安装新版libxcb
前言 上一篇文章提到,linux 下编译Qt源码如果要用到Quick的话,那么运行时会依赖qxcb库,而编译生成qxcb库就需要先安装libxcb,并且最低要求 版本大于1.9.1 Requires ...
- linux下caffe-gpu的编译安装
服务器的环境 Ubuntu18.04, python3.6 CUDA 10.0, cuDNN 7.6.3 opencv3.4.6 查看cuda和cudnn版本 nvcc -V cat /usr/loc ...
- Linux下源码编译安装Python3
操作系统:Centos 下载源码包 下载地址 https://www.python.org/downloads/release/python-365/ 解压 # tar -zxvf Python-3. ...
- Linux下源码编译安装Redis及如何后台启动Redis
操作系统:Centos 下载源码包 http://download.redis.io/releases/redis-4.0.9.tar.gz 解压 # tar -zxvf redis-4.0.9.ta ...
- (转)linux下oracle instant client安装和运行
1.首先要知道什么是ORACLE的客户端: Oracle Instant client 是oracle提供的简便客户端, 支持多种平台. 可从oracle网站下载, 下载地址为 http://www. ...
- 在 Linux 下用 CMAKE 编译安装 OpenCV 3.2.0
[安装相关软件和库] 1.安装CMAKE:这里使用apt-get来安装; CMAKE 是一个跨平台编译工具,能够输出各种makefile,和project 文件,指导编译器编译,对CMAKE具体的可以 ...
- 【OpenCV】在Linux下用CMAKE编译安装OpenCV3.2.0
[安装相关软件和库] 1.安装CMAKE:这里使用apt-get来安装; CMAKE 是一个跨平台编译工具,能够输出各种makefile,和project 文件,指导编译器编译,对CMAKE具体的可以 ...
最新文章
- 一个fork短码的扩展版本
- Android gallery详解
- python.freelycode.com-不完整的Http读取和Python中的Requests库
- 算法学习之百钱买百鸡
- 三、糖醋鲤鱼(Sweet and sour carp)
- ABAP设置输入焦点和表格控件行数的注意事项
- 使用Samba实现文件共享
- frp 后台地址_Frp后台自动启动的几个方法
- PHP8编译swoole出错,swoole自定义错误的方法
- ADT安装好在Eclipse后运行模型Android提示Re-installation fai...
- 曝微信低调上线“银行储蓄”服务,这是越来越像支付宝的节奏?
- 扬帆技术论坛系统封装工具 SPAT v 5.5.3.6_BETA1[官方最新版]
- GRE+托福四个半月复习计划
- Win11局域网内安装IIS
- 正则表达式(Regular Expression)基本概念及理解
- ansys的kbc_ANSYS APDL 应用技巧
- 无法上网的N种解决方法
- Qt数据库应用11-通用数据生成器
- 手把手带二大爷用EasyDL实现戴口罩检测APP
- Android 关机时的radio相关关闭流程