麒麟V10 arm cpu aarch64 下编译 RocketMQ-Client-CPP 2.2.0

国产自主可控服务器需要访问RocketMQ消息队列,最新的C++SDK是2020年发布的 rocketmq-client-cpp-2.2.0 这个版本支持TLS模式。 用默认的版本安装遇到一些问题,记录一下。

下载Releases · apache/rocketmq-client-cpp · GitHubhttps://github.com/apache/rocketmq-client-cpp/releases

操作系统信息:

复制代码
#uname -p
aarch64
#uname 
Linux
安装编译需要的工具
#yum install gcc gcc-c++ cmake automake autoconf libtool 

一是默认的boost_1_58_0编译无法通过。检测到的CPU变成了x64,未能检测出arm。使用boost_1_72_0 (更高的版本更改较大,删除了boost_1_72_0.tar.gz\boost_1_72_0\boost\detail\endian.hpp文件,后面编译通不过 )

boost-1_70_0

二是默认的openssl-1.1.1d编译通过,链接时报错:

bash 复制代码
/usr/bin/ld: ../../bin/lib/libcrypto.a(sha1-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
../../bin/lib/libcrypto.a(sha1-armv8.o): In function `sha1_block_armv8':
(.text+0x1240): dangerous relocation: unsupported relocation

更新为openssl-1.1.1w版本。

三是将依赖的文件解压后放到rocketmq-client-cpp目录

bash 复制代码
#unzip rocketmq-client-cpp-2.2.0.zip
#mv boost_1_72_0.tar.gz jsoncpp-0.10.7.zip openssl-1.1.1w.tar.gz ./rocketmq-client-cpp-2.2.0

依赖库boost文件可以从 https://sourceforge.net/projects/boost/files/boost/1.72.0/https://sourceforge.net/projects/boost/files/boost/1.72.0/下载。

RocketMQ-Client-CPP2.2.0编译依赖库资源-CSDN文库https://download.csdn.net/download/eamon100/90487665四是修改 CMakeLists.txt,将186至190行注释掉(检测不了aarch64)

bash 复制代码
186             #    if (CMAKE_BUILD_BITS EQUAL 32)
187             #        list(APPEND CXX_FLAGS "-m32")
188             #    else () #not-condition
189             #        list(APPEND CXX_FLAGS "-m64")
190             #    endif ()

编译:

bash 复制代码
#./build.sh
相关推荐
QQ_4376643142 小时前
C++多态
开发语言·c++
乔宕一2 小时前
将浮点数转换为分数
c++
A.A呐5 小时前
【Linux第四章】gcc、makefile、git、GDB
linux·c语言·开发语言·c++·git
struggle20256 小时前
torchmd-net开源程序是训练神经网络潜力
c++·人工智能·python·深度学习·神经网络
xuanzdhc6 小时前
C++重点知识详解(命名空间,缺省参数,函数重载)
开发语言·c++
虾球xz7 小时前
CppCon 2017 学习:Howling at the Moon: Lua for C++ Programmers
开发语言·c++·学习·lua
monicaaaaan8 小时前
旋转图像C++
开发语言·c++
无影无踪的青蛙8 小时前
[C++] STL数据结构小结
开发语言·数据结构·c++
景彡先生8 小时前
C++中的指针与引用
开发语言·c++
多吃蔬菜!!!8 小时前
C++模板基础
java·c++·算法