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. 笔记-AHOI2013 差异

    AHOI2013 差异 方法1:SA 先板个后缀数组(带 \(height\) 不带 \(st\) 表),用单调队列递推每个后缀 \(sa_i\) 对答案的贡献,求和,用定值减之. #include ...

  2. MarkDown的练习_Java开发学习路径

    MarkDown的练习 语言学习 C/C++语言 Java语言 基础四大件 数据结构与算法 操作系统 计算机网络 设计模式 数据库/SQL 私人令牌:42bb654f53941d5692e98b35f ...

  3. Robot Framework+adb框架自动化测试Android设备案例⑸——L1层测试用例

    一.L1层测试用例 1.初始化.robot *** Settings *** Resource ../L2层关键字.robot *** Test Cases *** 切换EMMC模式 [Tags] A ...

  4. C++11新特性 变参模板、完美转发(简述)

    变参模板 (Variadic Template) - 使得 emplace 可以接受任意参数,这样就可以适用于任意对象的构建 完美转发 - 使得接收下来的参数 能够原样的传递给对象的构造函数,这带来另 ...

  5. centos 7 配置 mysql 5.7 主从复制

    centos 7 配置 mysql 5.7 主从复制 主库:192.168.12.3 从库:192.168.12.2 1. 主库从库所在服务器关闭防火墙Systemctl stop firewalld ...

  6. Java-Word转PDF

    1. 下载jar包或者引入pom.xml 下载:https://www.e-iceblue.cn/Downloads/Free-Spire-Doc-JAVA.html 引入pom.xml:https: ...

  7. 我叫Mongo,干了「索引探索篇」提升我的效率,值得您拥有

    这是mongo第四篇"索引探索",后续会连续更新4篇 mongodb的文章总结上会有一系列的文章,顺序是先学会怎么用,在学会怎么用好,戒急戒躁,循序渐进,跟着我一起来探索交流.通过 ...

  8. react第十六单元(redux的认识,redux相关api的掌握)

    第十六单元(redux的认识,redux相关api的掌握) #课程目标 掌握组件化框架实现组件之间传参的几种方式,并了解两个没有任何关系组件之间通信的通点 了解为了解决上述通点诞生的flux架构 了解 ...

  9. 多任务-python实现-迭代器相关(2.1.12)

    @ 目录 1.需求 2.斐波那契数列演示 3.并不是只有for循环能接收可迭代数据类型,list,tuple也可以 1.需求 类比 早上起来吃包子 1.买1年的包子,放在冰箱,每天拿一个 2.每天下楼 ...

  10. 利用基于Go Lang的Hugo配合nginx来打造属于自己的纯静态博客系统

    Go lang无疑是目前的当红炸子鸡,极大地提高了后端编程的效率,同时有着极高的性能.借助Go语言我们 可以用同步的方式写出高并发的服务端软件,同时,Go语言也是云原生第一语言,Docker,Kube ...