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 编译环境



  • 编译 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 编译的更多相关文章

  1. Visual Studio 2019 编译.Net Core Console项目出现【MSB4018 The "CreateAppHost" task failed unexpectedly】 错误

    需要测试一个小东东,使用Visual Studio 2019新建了一个.Net Core的Console程序,但是在编译的时候一直报错,死活编译不通过. 错误信息: Severity Code Des ...

  2. DX12龙书 00 - 环境配置:通过 Visual Studio 2019 运行示例项目

    0x00 安装 Visual Studio 2019 安装 Visual Studio 2019 以及相关组件. 注:安装组件时带的 Windows 10 SDK 可以在 Individual com ...

  3. 关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法

    转自:http://blog.csdn.net/xiaochunzao/article/details/16987703 Visual Studio 2013 编译旧的 multi-byte char ...

  4. Visual Studio 2019 preview中体验C# 8.0新语法

    准备工作: Visual Studio 2019 Preview版本中并没有包含所有的C# 8.0的新功能,但目前也有一些可以试用了.在开始之前,需要进行入两项设置: 将Framework设置为.ne ...

  5. Visual Studio 2019 for Mac 离线更新方法

    当你打开Visual Studio 2019 for Mac检查更新时,如果下载更新包很慢,可以尝试如下操作: 打开Finder(访达),找到~/Library/Caches/VisualStudio ...

  6. 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢?

    原文:https://blog.csdn.net/WPwalter/article/details/100158000 本文的内容分为三个部分: Visual Studio 能完全还原的 ReShar ...

  7. 使用 visual studio 2019 社区版打开touchgfx工程注意项

    @2019-09-23 [环境] touchgfx designer 4.10.0 visual studio 2019 社区版 [问题] #error 1 使用 visual studio 2019 ...

  8. 【译】Visual Studio 2019 的 Local Process with Kubernetes

    今天,我们自豪地宣布 Local Process with Kubernetes 的预览版已加入到 Visual Studio 2019 16.7 Preview 2 中.  Local Proces ...

  9. OpenCV(c++)-1 安装和配置OpenCV4.4(Windows+visual studio 2019)

    @ 目录 安装OpenCV4 在Windows系统安装OpenCV4 配置visual studio 2019 配置包含路径 验证配置结果 安装OpenCV4 OpenCV是一个基于BSD许可(开源) ...

随机推荐

  1. Scrum 冲刺 第五篇

    Scrum 冲刺 第五篇 每日会议照片 昨天已完成工作 队员 昨日完成任务 黄梓浩 初步完成app项目架构搭建 黄清山 完成部分个人界面模块数据库的接口 邓富荣 完成后台首页模块数据库的接口 钟俊豪 ...

  2. 认识 Cargo-Rust构建工具和包管理器

    认识 Cargo-Rust构建工具和包管理器 上两篇文章 都有说到 hello world 程序,但是我们如果使用自己创建文件的方式创建项目,一旦文件多了,那得多麻烦,整个项目将变得难以管理.下面我来 ...

  3. 题解-洛谷P6788 「EZEC-3」四月樱花

    题面 洛谷P6788 「EZEC-3」四月樱花 给定 \(n,p\),求: \[ans=\left(\prod_{x=1}^n\prod_{y|x}\frac{y^{d(y)}}{\prod_{z|y ...

  4. 笔记-[ZJOI2007]仓库建设

    笔记-[ZJOI2007]仓库建设 [ZJOI2007]仓库建设 \(f_i\) 到第 \(i\) 个工厂并且建设了仓库. \[\begin{split} f_i=&\min\{f_j+\su ...

  5. day106:MoFang:BUG:获取数据验证token是否过期&相册/相机取消头像无法显示&MongoDB

    目录 BUG1:前端在获取数据时,要检验token是否过期 BUG2:相册/相机取消后设置页面头像无法显示 MongoDB 1.MongoDB基本介绍 2.MongoDB安装 3.MongoDB:通用 ...

  6. 安装ELK的一些问题

    1.使用的是centos6,其linux内核版本为2.6.而Elasticsearch的插件要求至少3.5以上版本 ,禁用这个插件即可.修改elasticsearch.yml文件,在最下面添加如下配置 ...

  7. pytorch和tensorflow的爱恨情仇之一元线性回归例子(keras插足啦)

    直接看代码: 一.tensorflow #tensorflow import tensorflow as tf import random import numpy as np x_data = np ...

  8. 持久层之 MyBatis: 第二篇 :动态SQL And多表查询

    MyBatis入门到精通 完整CRUD UserDaoImpl 编写UserDao对应的UserDaoMapper.xml 添加UserDao的测试用例 编写UserDao的测试用例 解决数据库字段名 ...

  9. sql server 汉字转拼音首字母

    create function fun_getPY ( @str nvarchar(4000) ) returns nvarchar(4000) as begin declare @word ncha ...

  10. 想成为Git大神?从学会reset开始吧

    大家好,今天我们来着重介绍一个非常关键的功能就是reset.在上一篇文章介绍修改历史记录的时候曾经提到过,当我们需要拆分一个历史提交记录的时候需要使用reset.估计很多小伙伴不明白,reset究竟做 ...