Windows系统下编译libnanomsg库

开发中经常需要有数据交互类的功能需求,一般会使用TCP或UDP方式,需要自己去实现Server或Client端的功能。如果有多个进程或服务应用之间的数据交互,就需要对Server端更多的设计方式来满足多客户端的请求访问。

nanomsg就是提供通讯服务的开发库,使用C语言开发,可以方便的移植到各种平台,支持多种通讯方式。不像ZeroMQ需要常驻的服务,可以直接集成在应用中使用。以下是官方的介绍

The nanomsg library is a simple high-performance implementation of several “scalability protocols”. These scalability protocols are light-weight messaging protocols which can be used to solve a number of very common messaging patterns, such as request/reply, publish/subscribe, surveyor/respondent, and so forth. These protocols can run over a variety of transports such as TCP, UNIX sockets, and even WebSocket.

https://github.com/nanomsg/nanomsg

本文是将nanomsg在Windows平台下编译成dll动态库来使用。

下载nanomsg代码并解压到目录。

下载cmake安装包。

https://github.com/Kitware/CMake/releases/download/v3.30.0-rc1/cmake-3.30.0-rc1-windows-x86_64.msi

下载mingw64并解压到目录,然后配置mingw64的路径到环境变量PATH中。

https://github.com/niXman/mingw-builds-binaries/releases/download/13.2.0-rt_v11-rev1/x86_64-13.2.0-release-win32-seh-msvcrt-rt_v11-rev1.7z

Windows系统下编译libnanomsg库

运行PowerShell,并切换目录到nanomsg下

mkdir build
cd build

然后使用cmake来生成Makefile文件,这里指定使用”MinGW”方式。

cmake -G "MinGW Makefiles" ..

然后使用ming32-make.exe来编译代码

ming32-make.exe
Windows系统下编译libnanomsg库

等待编译完成后,就能看到有libnanomsg.dll文件了。

MinGW的共享库和静态库的区别

共享库 类似 msvc 的静态链接,构建最终生成 .a(类似.lib) 和 .dll,客户端编译时需要头文件和 .a,运行时需要 .dll;

静态链接库 则是另外一种新的机制,构建最终只生成 .a 文件,客户端调用时需要 .a 文件,运行时则不需要任何库文件,类似于客户端在编译时将库包进了自己的exe中;

MSVC编译器在构建动态库时生成的文件是*.dll和*.lib。

相关新闻

联系我们

029-89197679

技术咨询:support@i2som.tech

商务合作:market@i2som.tech

工作时间:周一至周五,9:30-18:30,节假日休息