windows下,mingw编译SimpleAmqpClient

一、关系

1、SimpleAmqpClient依赖于Boost,所以先下载编译Boost,下载地址:https://www.boost.org/users/history/

2、SimpleAmqpClient是rabbitmq-c的C++开发封装,所以先下载rabbitmq-c,下载地址:https://github.com/alanxz/rabbitmq-c

3、SimpleAmqpClient下载地址:https://gitcode.net/mirrors/alanxz/SimpleAmqpClient。

4、编译rabbitmq-c和SimpleAmqpClient需要用到cmake,所以先安装cmake,本次编译使用的是3.22.0版本。

二、编译Boost

    以Boost1.69.0为例,解压到E:/opensource/rabbitmq/src/boost_1_69_0,在开始菜单栏时找到Qt5.9.8下面的Qt 5.9.8(MinGW 5.3.0 32-bit),打开弹出如下窗口

    

    定位到E:/opensource/rabbitmq/src/boost_1_69_0/tools/build/src/engine

      

    输入命令:build.bat gcc,在当前目录将会生成bin.ntx86文件夹,里面包含两个exe文件b2.exe,bjam.exe

    

    将bin.ntx86\bjam.exe拷贝到E:\opensource\rabbitmq\src\boost_1_69_0目录下,输入命令->cd ../../../..,进入boost_1_69_0目录下

    

    输入命令->bjam.exe --help,可以查看编译选项,以下介绍几个重要选项:

类型可选项说明
targets install 复制include头文件夹和生成lib库文件夹。
targets stage 只生成lib库文件夹。由于include文件夹复制于Boost根目录的boost文件夹,因此可以直接使用boost文件夹。
options –prefix 以install方式编译时,指定与体系结构无关的文件存放目录。默认为C:\Boost。
options –exec-prefix 以install方式编译时,指定依赖于体系结构的文件存放目录。默认与–prefix相同。
options –libdir 以install方式编译时,指定库文件存放位置。默认为–prefix指定目录的lib文件夹。
options –includedir 以install方式编译时,指定头文件存放位置。默认为–prefix指定目录的include文件夹。
options –stagedir 以stage方式编译时,指定输出库目录。默认在Boost根目录生成stage文件夹,存放lib文件。
options –build-type 编译方式,默认最小编译,可以指定全编译。可选minimal/complete。
options –build-dir 编译产生的中间文件存放位置。默认于Boost根目录生成bin.v2文件夹,存放中间文件,在Boost编译完成之后可以删除。
options –show-libraries

展示需要构建和安装的Boost库列表。

- atomic - chrono - container - context - coroutine - date_time - exception - filesystem - graph - graph_parallel - iostreams - locale - log - math - mpi - program_options - python - random - regex - serialization - signals - system - test - thread - timer - wave

options –help 介绍b2的使用方法和参数含义。
options –with 只编译指定库。
options –without 不编译指定库。
properties toolset 指定编译器版本,若不指定则自动搜索本地可用编译器。
properties variant 指定编译版本。可选debug/release,默认编译二者。
properties link 指定生成库为静态库或者动态库。可选static/shared。
properties runtime-link 指定运行时静态链接或者动态链接其他库。可选static/shared,默认编译二者。
properties threading 指定生成库为单线程或者多线程。可选single/multi,默认是multi。

    SimpleAmqpClient只用到了Boost的chrono和system两个库,为了节约时间,输入命令:bjam.exe stage toolset=gcc --with=chrono --with=system link=shared runtime-link=shared threading=multi,编译完后在C:/Boot/lib生成库文件,将Boost文件夹剪切到E:/opensource/rabbitmq/目录下,将E:/opensource/rabbitmq/src/boost_1_69_0/boost文件夹拷贝到E:/opensource/rabbitmq/Boost目录下

三、编译rabbitmq-c

 解码至E:/opensource/rabbitmq/src/rabbitmq-c-master,在E:/opensource/rabbitmq/src/rabbitmq-c-master里创建build文件夹,打开cmake工具并设置Source和Build路径

  点击“Configure”,弹窗选择“MinGW Makefiles”

  提示错误

  设置mingw32-make.exe路径

  点Configure,弹出更多配置选项

 Ungrouped Entries

  ENABLE_SSL_SUPPORT:去勾

  EUN_SYSTEM_TESTS:去勾

BUILD

  BUILD_SHARED_LIBS:勾选,其它去勾

CMAKE

  CMAKE_INSTALL_PREFIX:E;/opensource/rabbitmq/rabbitmq-c

设置好后,再Configure,提示:Configuring done

  点Generate,显示Generating done

 这里在E:/opensource/rabbitmq/src/rabbitmq-c/build目录下生成Makefile文件,在开始菜单栏时找到Qt5.9.8下面的Qt 5.9.8(MinGW 5.3.0 32-bit),打开弹出如下窗口

 定位到E:/opensource/rabbitmq/src/rabbitmq-c-master/build,

  输入命令:mingw32-make,开始编译

 输入命令:mingw32-make install,开始安装

  安装完后,在E:/opensource/rabbitmq/rabbitmq-c下生成bin,lib,include,分别是程序运行动态链接库librabbitmq.4.dll、程序开发引用库librabbitmq.4.dll.a和头文件

四、编译SimpleAmqpClient

打开E:/opensource/rabbitmq/src/SimpleAmqpClient-master/CMakeLists.txt,添加 c++11 支持

  • set(CMAKE_CXX_STANDARD 11)               # C++11...
  • set(CMAKE_CXX_STANDARD_REQUIRED ON)   #...is required...
  • set(CMAKE_CXX_EXTENSIONS OFF)                  #...with compiler extensions like gnu++11

 编译SimpleAmqpClient和编译rabbitmq-c类似,解码SimpleAmqpClient到E:/opensource/rabbitmq/src/SimpleAmqpClient-master,并在SimpleAmqpClient-master下创建build文件夹,打开cmake,设置Source和build路径,

点击Configure,设置CMAKE_MAKE_PROGRAM路径至C:/Qt/Qt5.9.8/Tools/mingw530_32/bin/mingw32-make.exe

点击Configure,设置Boost头文件和库的路径

  点击Configure,设置Rabbitmqc头头文件和库的路径

  其它设置

BUILD

  BUILD_SHARED_LIBS  勾选

ENABLE

  ENABLE_SSL_SUUPRT  去勾

  ENABLE_TESTING    去勾

CMAKE

  CMAKE_INSTALL_PREFIX  E:/opensource/rabbitmq/SimpleAmqpClient

选项都设置完,再点击Configure,提示Configuring Done,再点击Generate,提示Generating Done,这时在build文件夹生成了Makefile文件

在开始菜单栏时找到Qt5.9.8下面的Qt 5.9.8(MinGW 5.3.0 32-bit),打开弹出如下窗口

 定位到E:/opensource/rabbitmq/src/-c-master/SimpleAmqpClient-master/build,

  输入命令mingw32-make,启动编译

 输入命令:mingw32-make install,启动安装

 安装完后,在E:/opensource/rabbitmq/SimpleAmqpClient目录下生成了bin、lib、include,分别为程序运行动态链接库libSimpleAmqpClient.7.dll、程序开发引用库libSimpleAmqpClient.7.dll.a和程序开发引用头文件。

posted on 2022-09-16 10:41  zhangnianyong  阅读(9)  评论(0编辑  收藏  举报