本文参考以下文章:
openssl编译安装参考
http://blog.csdn.net/YAOJINGKAO/article/details/53041165?locationNum=10&fps=1
http://blog.csdn.net/u010283894/article/details/77106159
以下为开发编译librdkafka 64位动态库为例。
一、编译前准备
(1)下载 安装 vs2015
(2)下载 安装 ActivePerl5.24.3.2404
下载地址:http://www.activestate.com/activeperl/downloads
(3)(下载源码)openssl1.0.2n
下载地址:https://www.openssl.org/source/
(4)(下载源码)最新 librdkafka
下载地址:https://github.com/edenhill/librdkafka
二、开始编译openssl (编译成功直接进入步骤三)
1.配置编译环境
按下图打开vs2015开发人员命令提示
编译64位openssl,执行以下命令
cd C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64
vcvars64.bat
2.编译
先进入openssl-1.0.2j目录,我这里以本机解压目录
F:
cd F:\Work\kafka\win\openssl-1.0.2n
配置输出目录和编译类型【编译32位、64位;release、debug有区别】 命令格式如下:
perl Configure [类型] no-asm --prefix="[输出目录]"
参数 | 含义 |
---|---|
debug-VC-WIN32 | 编译32位debug版本 |
VC-WIN32 | 编译32位release版本 |
debug-VC-WIN64A | 编译64位debug版本 |
VC-WIN64A | 编译64位release版本 |
执行命令配置编译生成目录在 F:\Work\kafka\win\openssl_build
perl Configure VC-WIN64A no-asm --prefix="F:\Work\kafka\win\openssl_build"
【编译64位openssl】
命令如下:
ms\do_win64a.bat
执行这一步之后,在ms目录下会生成nt.mak和ntdll.mak两个编译配置文件
nt.mak 用于生成静态lib库
ntdll.mak 用于生成动态dll库
- 【编译openssl静态链接库】
命令如下:
nmake -f ms\nt.mak
nmake -f ms\nt.mak test
nmake -f ms\nt.mak install
- 【编译openssl动态链接库】
命令如下:
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak test
nmake -f ms\ntdll.mak install
执行test命令可以测试编译好的库
测试成功了就可以运行install命令,运行完之后才会在输出目录 F:\Work\kafka\win\openssl_build中找到输出的编译好的库和加入工程时必要的include文件。
三、编译librdkafka
1.解压下载后的源码,进入win32目录,使用vs2015打开librdkafka.sln解决方案。
2.配置opensll库与头文件目录
首先需要编译librdkafka项目,配置opensll与lib。
添加头文件:
添加lib
这里有个地方要注意下,默认使用的是libeay32MT.lib与ssleay32MT.lib。这里将名字中去掉MT,保存如上图所示,编译即可通过。
2.测试
编译完librdkafka项目后,可以逐一编译其他项目,这里拿客户端编译做测试。
编译成功后生成文件在目录win32\outdir\v140\x64\Release中(这里是以vs2015为例)
我们在本机开启一个topic为test的生产者,然后使用本测试程序消费者进行通信测试。
该程序需要在命令行界面打开。
根据参数提示,执行以下命令:
rdkafka_consumer_example_cpp.exe -g 4 -b 127.0.0.1:9092 test
消费者组ID具体含义请百度。
效果如下图:
以下链接是已经编译好的静态库与动态库。
下载地址:librdkafka win7 64位 vs2015编译Release.rar