librdkafka使用VS2015进行编译

librdkafka使用VS2015进行编译

此文引用https://www.mycode.net.cn/language/cpp/1681.html

  抄了那么久的《kafka权威指南》,开始实操了,按照书本的介绍,kafka本身提供针对Java的原生API,其它语言如果需要使用kafka,那么就需要通过第三方库来做了,对了再书中一直提及的kafka官方文档,在网站中的DOCUMENTATION里。在kafka的官网上找到Clients,点击进入,此页介绍了一下各语言的推荐库,如下:

  好了,接下来要做的事情就是点击C++那一项,到页面指示的网址去下载库即可。官方网站上一共推荐了5种C++库,本次试验 选择librdkafka,因为它支持的kafka版本比较多。

1.下载librdkafka库的源码,并在windows系统下进行编译(使用VS2015)

  librdkafka的API文档地址:https://docs.confluent.io/2.0.0/clients/librdkafka/dir_b60aae235eacf49413d63ea05b937558.html。在librdkafka库的下载页有对应的编译要求,如下图所示:(我在这篇文章里讲的是编译为64位的库,编译32位库也可以按照这个步骤进行操作,但对应的软件要安装成32位的,下载地址是:https://github.com/edenhill/librdkafka)

 

 

  注:将源码包解压后可以找到win32文件夹,这里面就是VS的解决方案(.sln文件   sln:solutions),但是现在还无法编译,因为它需要依赖openssl。

  下载源码的时候注意一下分支的选择:

  选择release,一般master分支是正在开发中的分支,里面可能会有一些bug或者未经过测试的新代码。在正式使用或者研究的时候使用release下的源码包即可。

 

1.下载并安装ActivePerl,下载地址:https://www.activestate.com/activeperl,安装后可以执行perl命令即可,这个在接下来编译openssl的时候会用到

  安装完后,在Perl的安装目录下的eg文件夹里(我的是:C:\Perl64\eg)打开windows的命令行工具,如果出现下图,说明你的Perl是安装成功的。因为openssl的配置是用Perl写的。

  或者cmd,在命令行中输入perl -v,如下图则表示安装成功:

 

2.安装dmake,如果没有dmake的话,编译openssl会提示你的机器没有安装dmake。

  dmake、cmake、nmake、gmake、make。

  gmake:就是linux下的GNU make,gmake是GNU make在其它操作系统下的移植版,但是别的平台上,一般make这个名字被占用了,所以就起了个gmake的名字。windows下自带的make叫做nmake。如果你使用nmake的时候,发现命令行提示nmake不是内部命令,那么需要添加环境变量,环境变量是 :VS的安装目录/VC/bin。

  dmake是一款跨平台的编译工具。dmake是一款与GNU make类似的编译工具,Dmake是同GNU Make类似的一个工具。其命令格式自成一体,但是可以适用于Linux, Solaris, and Win32 and other platforms。Dmake有一个变种,被OpenOffice.org使用。dmake 是一个命令行工具,与 make(1) 兼容。dmake 能够以网格、分布、并行或串行模式生成目标。如果使用的是标准 make(1) 实用程序,在对 makefile 进行任何更改时可以毫不费力地过渡到使用 dmake。dmake 是 make 实用程序的超集。

  cmake是另一款跨平台的编译工具。 Visual Studio 的 .sln,Xcode 的 .xcodebuild 文件,依赖现有编译工具 (make, nmake, vcbuild, xcodebuild) 来编译。

  在windows下安装dmake工具:

  图 VS2015 命令行工具

  打开图中的VS2015开发人员命令提示,进入VS的命令行工具,然后执行命令:ppm install dmake。如果出现如下错误:ppm install failed: DBD::SQLite::db selectrow_array failed: database disk image is malformed,那么删除路径:C:\Users\Admin\AppData\Local\ActiveState\ActivePerl 下的文件(和ppm有关的文件)即可。

  如上图,第一次安装dmake失败,经过上面讲的处理方式处理之后,安装成功。

  要编译openssl源码的话,建议详细阅读源码包里的INSTALL文件。

3.下载并安装64位的openssl。(因为本次的目的仅是为了编译librdkafka,而不是做基于openssl的开发,所以就先下载个安装版的,进行安装,下载地址:http://slproweb.com/products/Win32OpenSSL.html)

  所以看东西要认真啊,虽然网站地址上写明的是Win32Openssl,但是这个站点是有Win64Openssl下载的。这个站点并不是openssl官方提供的。

  开始安装openssl。开始下载的是最新的版本:Win64OpenSSL-1.1.1,但是安装完后,发现lib文件夹里没有编译librdkafka需要的lib,所以换了一个,下载了Win64OpenSSL-v_1.0.2p。图片中的选项要注意下,别选错了,待会编译librdkafka的时候会用到。

      我这里选用的是:Win64 OpenSSL v1.0.2r

       选择1.1那个没有成功。

  安装成功之后,可以看到目录结构如下:

  然后在lib文件夹里就有你编译librdkafka时需要用到的lib。

4.编译librdkafka。我下载的是master分支。

  解压后,文件夹树结构如下:

 

   然后打开win32文件夹,打开解决方案,剩下的就是你很熟悉的配置附加库路径的事情了……

 

 

  编译的时候先编译librdkafka。然后再编译其他的。编译的结果默认是动态库,你要是想使用静态库也可以修改。

  到了这一步库的编译过程就结束了。如下图:

  头文件的话,在你的工程里需要引入的头文件有一个:rdkafkacpp.h。然后编译动态库生成的dll还有对应的lib文件,这个也是需要引入你的工程里的,它不是我们通常讲的静态库文件,只是编译器在编译阶段会用到它们。

 

VS2015编译librdkafka可以按照以下步骤进行操作: 1. 首先,从librdkafka的GitHub页面(https://github.com/edenhill/librdkafka)上下载最新的源代码压缩包,并解压到本地的某个文件夹中。 2. 打开VS2015,点击菜单栏的“文件”,选择“新建”,然后选择“项目”。 3. 在创建项目的窗口中,选择“Visual C++”下的“空项目”,然后为项目命名并选择保存的位置。 4. 右键点击项目,选择“属性”选项。 5. 在项目属性窗口中,选择“VC++目录”,然后选择“包含目录”一项。 6. 点击右侧的编辑框后的省略号按钮(...),找到librdkafka源代码所在的文件夹,并选择确认。 7. 在项目属性窗口中,选择“链接器”,然后选择“常规”一项。 8. 在右侧的“附加库目录”编辑框中,添加librdkafka库文件所在的文件夹路径。 9. 在右侧的“附加依赖项”编辑框中,添加librdkafka库文件的名称,例如“librdkafka.lib”。 10. 点击“应用”按钮,然后点击“确定”按钮。 11. 右键点击项目中的源文件,选择“添加”,然后选择“现有项”。 12. 找到librdkafka源代码文件夹中的C文件(.c文件),选择需要添加到项目中的文件,并点击“添加”按钮。 13. 点击菜单栏的“生成”,选择“生成解决方案”或者按下快捷键Ctrl + Shift + B进行编译。 14. 如果编译顺利完成,即可得到生成的可执行文件。若遇到错误信息,可能是编译过程中遗漏了某些设置或者依赖项,请仔细检查,并根据错误信息进行调整。 以上就是在VS2015编译librdkafka的大致步骤,具体操作可能因环境和配置而有所差异,请根据实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值