rocketmq-cpp-client Visual Studio 2019 编译
rocketmq-cpp-client Visual Studio 2019 编译
rocketmq-cpp-client 是rocketmq c++版本的 所以我们C++ 开发者使用此项目
构建
- 获取项目
//克隆项目
git clone https://github.com/apache/rocketmq-client-cpp.git
克隆完毕项目后 你会看到如下项目结构

我们打开项目中的 win32_build.bat 以记事本方式打开

这三个就是依赖的第三方库 我们可以 复制 这三个地址自己手动使用git 克隆下来
- 准备构建依赖的第三方库
在项目根目录下新建一个文件夹来存放第三方库的源码

进入thirdparty文件夹 准备克隆 需要的第三方库git clone https://github.com/jsj020122/jsoncpp-0.10.6.git
git clone https://github.com/jsj020122/boost_1_58_0.git
git clone https://github.com/jsj020122/libevent-release-2.0.22.git
git clone https://github.com/jsj020122/zlib-1.2.3-src.git
boost 库比较大 所以花费的时间会比较久一些 耐心等待一段时间即可
- 下载Openssl 库 安装
后续需要用到
https://slproweb.com/products/Win32OpenSSL.html
- 安装vs2015 编译环境
- 下载Openssl 库 安装


- 编译 boost库

使用 vs2019 x86 tools 命令行工具 进入 boost_1_58_0 目录
开始编译 生成编译工具
bootstrap.bat

开始编译boost库
debug 编译命令
bjam.exe address-model=32 --with-serialization --with-atomic --with-log --with-locale --with-iostreams --with-system --with-regex --with-thread --with-date_time --with-chrono --with-filesystem link=static threading=multi variant=debug runtime-link=static
release 编译命令
bjam.exe address-model=32 --with-serialization --with-atomic --with-log --with-locale --with-iostreams --with-system --with-regex --with-thread --with-date_time --with-chrono --with-filesystem link=static threading=multi variant=release runtime-link=static
编译完成

jsoncpp-0.10.6 构建
使用 vs2019 打开jsoncpp_lib_static.vcxproj
点确定 升级到 v142

修改运行库
多线程调试 (/MTd)libevent-release-2.0.22 构建
使用vs2019 打开 libevent.vcxproj

点确定 升级到 v142

修改运行库多线程调试 (/MTd)编译 rocketmq-client-cpp
进入 项目根目录下的Win32目录下 使用 vs2019 打开rocketmq-client-cpp.sln
和上面的库一样 升级到 v142 修改运行库多线程调试 (/MTd)编译生成 选择静态库lib 默认是动态库

在预处理中添加WIN32_LEAN_AND_MEAN后编译
发现 错误一堆 不要慌让我们一步一步解决
先解决找不到openssl头文件的问题 包含之前安装的openssl 的头文件路径
以及 库文件路径

无法打开源文件: “..\src\common\MQClient.cpp”: No such file or directory
从项目源码中排除这个文件 重新添加..\src\common\DefaultMQClient.cpp到项目中
添加附加头文件
再次重新编译
继续报错 根据查看错误原因是找不到 boost::weak_ptr 解决办法引入#include <boost/smart_ptr/weak_ptr.hpp>
再次编译 后继续报错

查看原因是 void* 不能转换位 const char* 修改 (const char*)
再次编译后 终于正确生成了

rocketmq-cpp-client Visual Studio 2019 编译的更多相关文章
- Visual Studio 2019 编译.Net Core Console项目出现【MSB4018 The "CreateAppHost" task failed unexpectedly】 错误
需要测试一个小东东,使用Visual Studio 2019新建了一个.Net Core的Console程序,但是在编译的时候一直报错,死活编译不通过. 错误信息: Severity Code Des ...
- DX12龙书 00 - 环境配置:通过 Visual Studio 2019 运行示例项目
0x00 安装 Visual Studio 2019 安装 Visual Studio 2019 以及相关组件. 注:安装组件时带的 Windows 10 SDK 可以在 Individual com ...
- 关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法
转自:http://blog.csdn.net/xiaochunzao/article/details/16987703 Visual Studio 2013 编译旧的 multi-byte char ...
- Visual Studio 2019 preview中体验C# 8.0新语法
准备工作: Visual Studio 2019 Preview版本中并没有包含所有的C# 8.0的新功能,但目前也有一些可以试用了.在开始之前,需要进行入两项设置: 将Framework设置为.ne ...
- Visual Studio 2019 for Mac 离线更新方法
当你打开Visual Studio 2019 for Mac检查更新时,如果下载更新包很慢,可以尝试如下操作: 打开Finder(访达),找到~/Library/Caches/VisualStudio ...
- 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢?
原文:https://blog.csdn.net/WPwalter/article/details/100158000 本文的内容分为三个部分: Visual Studio 能完全还原的 ReShar ...
- 使用 visual studio 2019 社区版打开touchgfx工程注意项
@2019-09-23 [环境] touchgfx designer 4.10.0 visual studio 2019 社区版 [问题] #error 1 使用 visual studio 2019 ...
- 【译】Visual Studio 2019 的 Local Process with Kubernetes
今天,我们自豪地宣布 Local Process with Kubernetes 的预览版已加入到 Visual Studio 2019 16.7 Preview 2 中. Local Proces ...
- OpenCV(c++)-1 安装和配置OpenCV4.4(Windows+visual studio 2019)
@ 目录 安装OpenCV4 在Windows系统安装OpenCV4 配置visual studio 2019 配置包含路径 验证配置结果 安装OpenCV4 OpenCV是一个基于BSD许可(开源) ...
随机推荐
- 【补题记录】NOIp-提高/CSP-S 刷题记录
Intro 众所周知原题没写过是很吃亏的,突然发现自己许多联赛题未补,故开此坑. 在基本补完前会持续更新,希望在 NOIp2020 前填完. 虽然是"联赛题",但不少题目还是富有思 ...
- 【学习笔记】浅析后缀自动机(SAM)及基础应用
解决子串相关问题的强大工具 我们知道一个长度为 \(n\) 的字符串中所有的子串数目为 \(O(n^2)\) 个,这很大程度上限制了我们对某些子串相关问题的研究.所以有没有解决方案,使得我们可以在可承 ...
- 2020 AC Saber夏季赛 游记
看着 \(\text{Acwing}\) 成长的我,还是写一下游记吧(?). 刚刚中考完,手速本来就老年,更慢,算法每次写完都要调,而且还查不出错.. Day 1 初赛.紧张,因为中考四五个月没打了, ...
- Codeforces Edu Round 49 A-E
A. Palindromic Twist 由于必须改变.所以要使\(a[i] = a[n - i + 1]\). 要么同向走,但必须满足之前的\(a[i] = a[n - i + 1]\). 要么相遇 ...
- Kubernetes 最佳安全实践指南
原文链接:https://fuckcloudnative.io/posts/security-best-practices-for-kubernetes-pods/ 对于大部分 Kubernetes ...
- IOS UITableView 加载未知宽高图片的解决方案
在开发中遇到了UITableView列表 UITableViewCell装载图片但不知Image的宽高 问题. 在解决该问题的时候,首先想到的是异步加载图片 采用第三方框架SDWebImage 实现对 ...
- 【震惊】padding-top的百分比值参考对象竟是父级元素的宽度
引言 书写页面样式与布局是前端工程师Coding 中必不可少的一项工作,在定义页面元素的样式时,padding 属性也是经常被使用到的. padding 属性用于设置元素的内边距,其值可以是lengt ...
- [日常摸鱼]POJ2187 BeautyContest-旋转卡壳
原来这个念 旋转卡qia壳ke- 题意:求平面内给定点集里的最远点对,$n \leq 5e4$ 做法就是旋转卡壳啦,话说这题数据范围应该可以再大挺多的. #include<cstdio> ...
- mini-web框架-WSGI-mini-web框架-web服务器集成动态请求的功能(5.1.2)
@ 目录 1.说明 2.代码 关于作者 1.说明 WSGI是一个协议 WSGI如下图 浏览器请求动态页面的过程如下 2.代码 WSGI在python实现的关键代码如下 env是用来交互数据的 deal ...
- [GXYCTF2019]禁止套娃(无参RCE)
[GXYCTF2019]禁止套娃 1.扫描目录 扫描之后发现git泄漏 使用githack读取泄漏文件 <?php include "flag.php"; echo &quo ...