文章目录
一、安装libsodium(非必安装项)
1、下载源码
进入官网:https://github.com/jedisct1/libsodium,解压到指定目录。
2、Linux平台
(1)编译前准备
- 需要先安装
libtool
、autoconf
:
sudo apt install libtool
sudo apt install autoconf
(2)编译安装
进入libsodium
解压后的目录,执行以下命令:
./autogen.sh
./configure --prefix=/opt/libsodium-1.0.18
make check
sudo make install
(3)配置环境
- 如果前面执行
configure
时没有配置--prefix
选项,则其会安装在/usr/local
,则需要调用命令:
sudo ldconfig
- 如果有配置
--prefix
选项,则需要设置环境变量,编辑/etc/profile
文件,在末尾添加:
export LIBSODIUM_ROOT=/opt/libsodium-1.0.18-ubuntu-x64
# 运行依赖
export LD_LIBRARY_PATH=$LIBSODIUM_ROOT/lib:$LD_LIBRARY_PATH
# 开发依赖
export CPATH=$LIBSODIUM_ROOT/include:$CPATH
export LIBRARY_PATH=$LIBSODIUM_ROOT/lib:$LIBRARY_PATH
export PKG_CONFIG_PATH=$LIBSODIUM_ROOT/lib/pkgconfig:$PKG_CONFIG_PATH # 需要同步修改pkgconfig目录下libsodium.pc文件中的prefix路径,指定为当前的库路径
执行source /etc/profile
,然后重启(否则只在当前终端中有效,新开终端需要再次执行命令才生效)。
3、Window平台
解压后,进入目录并执行构建命令:
cd libsodium\builds\msvc\build
buildall.bat
cd ../../../bin/
结束后将生成Win32
和x64
平台的Debug
、Release
库文件。然后可以把相关的库和头文件拷贝到一起,例如:
- 创建目录
libsodium-1.0.18-windows-x64-msvc
。 - 把
libsodium/src/libsodium/include
目拷贝进去(可以删除无用的include/Makefile.am
、include/sodium/version.h.in
文件以及inclue/sodium/private
目录)。 - 创建子目录
lib
,然后把生成的动态库或静态库文件拷贝进去。
二、安装ZeroMQ
1、下载源码
进入官网:https://github.com/zeromq/libzmq,解压到指定目录。
2、Linux平台
(1)编译安装
进入libzmq解压后的目录,执行以下命令:
./autogen.sh
./configure --prefix=/opt/zeromq-4.3.4
make
sudo make install
说明: 某些情况下可能需要使用libsodium
加密库替换默认内置的tweetnacl
加密库,则需要加上选项--with-libsodium
,大部分情况下不需要该选项。
(2)配置环境
- 如果前面执行
configure
时没有配置--prefix
选项,则其会安装在/usr/local
,则需要调用命令:
sudo ldconfig
- 如果有配置
--prefix
选项,则需要设置环境变量,编辑/etc/profile
文件,在末尾添加:
export ZEROMQ_ROOT=/opt/zeromq-4.3.4-ubuntu-x64
# 运行依赖
export LD_LIBRARY_PATH=$ZEROMQ_ROOT/lib:$LD_LIBRARY_PATH
# 开发依赖
export PATH=$ZEROMQ_ROOT/bin:$PATH
export CPATH=$ZEROMQ_ROOT/include:$CPATH
export LIBRARY_PATH=$ZEROMQ_ROOT/lib:$LIBRARY_PATH
export PKG_CONFIG_PATH=$ZEROMQ_ROOT/lib/pkgconfig:$PKG_CONFIG_PATH # 需要同步修改pkgconfig目录下libzmq.pc文件中的prefix路径,指定为当前的库路径
执行source /etc/profile
,然后重启(否则只在当前终端中有效,新开终端需要再次执行命令才生效)。
3、Windows平台
解压后,打开CMake工具,配置相关项,例如:
- 选择构建动态库还是静态库
- 选择是否使用
libsodium
加密库替换默认内置的tweetnacl
加密库,大部分情况下不需要勾选。
然后打开工程即可编译构建。构建结束后,右键INSTALL
项目,点击生成即可生成
依赖库,如:
三、安装ZMQPP
1、下载源码
进入官网:https://github.com/zeromq/zmqpp,解压到指定目录。
2、Linux平台
(1)编译前准备
进入ZMQPP解压后的目录,可以手动修改Makefile
文件,视情况需要修改的有:
- 修改ZMQPP库的安装路径(默认安装在
/usr/local
),例如:PREFIX = /opt/zmqpp-4.2.0
。 - 如果编译安装ZeroMQ库时通过选项
--prefix
指定了非默认安装位置,则在ZMQPP库链接时需要通过-L库路径
标识指定ZeroMQ库的路径。例如:COMMON_LIBS = -L/opt/zeromq-4.3.4/lib -lzmq
。
(2)编译安装
执行以下命令:
make
make check
sudo make install
make installcheck
(3)配置环境
- 如果修改了库的安装路径,则需要设置环境变量,编辑
/etc/profile
文件,在末尾添加:
export ZMQPP_ROOT=/opt/zmqpp-4.2.0-ubuntu-x64
# 运行依赖
export LD_LIBRARY_PATH=$ZMQPP_ROOT/lib:$LD_LIBRARY_PATH
# 开发依赖
export CPATH=$ZMQPP_ROOT/include:$CPATH
export LIBRARY_PATH=$ZMQPP_ROOT/lib:$LIBRARY_PATH
export PKG_CONFIG_PATH=$ZMQPP_ROOT/lib/pkgconfig:$PKG_CONFIG_PATH # 需要同步修改pkgconfig目录下libzmqpp.pc文件中的prefix路径,指定为当前的库路径
执行source /etc/profile
,然后重启(否则只在当前终端中有效,新开终端需要再次执行命令才生效)。
3、Windows平台
解压后,打开CMake工具,配置相关项,首次会出现红色框内的错误,提示找不到zeromq
库
这里配置本机的zeromq
库路径,例如:
然后打开工程即可编译构建。然后过程中会出现如下错误:
上图红框内为失败原因,双击红框中任意一行,打开源码 compatibility.hpp
,其中第132
行有错,原因是SOCKET
没有定义,需要包含 winsock2.h
头文件。在第37
行插入头文件#include <WinSock2.h>
继续编译后再次报如下错误:
上图红框内为失败原因,双击红框中任意一行,打开源码socket.cpp
中第344
行,显示std::min
有问题。查资料得,因为Windows.h
包含的windef.h
中有宏定义min
和max
,导致此处min
被展开宏。
查到一个简单的方法,使用项目范围的/D "NOMINMAX"
选项就可以避免这个干扰。右击打开zmqpp
和zmqpp-static
项目属性,在配置属性
>C/C++
>命令行
页面中的其它选项内,加上/D "NOMINMAX"
,如:
构建结束后,右键INSTALL
项目,点击生成即可生成
依赖库。