rabbitmq移植到arm

下载C语言的源码:https://github.com/alanxz/rabbitmq-c

首先编译下电脑版的,按照README的步骤,如果有错大部分可能是因为库文件找不到,安装相应的或者搜索相应的库文件的地址,加入到指定lib中:
Q:Could NOT find OpenSSL

A:sudo apt-get install libssl-dev

如果没有错误开始交叉编译:
需要在项目rabbitmq-c-0.8/CMakeList.txt中最开头添加

SET(CMAKE_SYSTEM_NAME Linux)
SET(TOOLCHAIN_DIR "/opt/FriendlyARM/toolschain")
SET(CMAKE_FIND_ROOT_PATH "/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/")
**#CMAKE_FIND_ROOT_PATH: 代表了一系列的相关文件夹路径的根路径的变更,比如你设置了/opt/arm/,所有的Find_xxx.cmake都会优先根据这个路径下的/usr/lib,/lib等进行查找,然后才会去你自己的/usr/lib和/lib进行查找****
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
SET(CMAKE_C_COMPILER ${TOOLCHAIN_DIR}/4.5.1/bin/arm-linux-gcc)
SET(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/4.5.1/bin/arm-linux-g++)

然后mkdir build && cd build
然后 cmake..
然后 cd example && make
不出错的情况下arm的二进制可执行文件已经出来,拷贝到arm板子上,执行。
出现以下问题:

Q:Could NOT find OpenSSL

A:因为libssl.so为交叉编译的arm版本的库文件,所以在交叉编译工具的文件夹下搜索,找到后添加相应的位置如上cmake的解释所说,

Q:运行时出现,找不到xx.so文件(一般是libssl.so.0.1和libcrypto.so.0.1文件)

A:在交叉编译工具下的文件夹中搜索,找到相应的库文件,拷贝到arm中的/lib中并根据缺少的库增加相应的链接,如运行时提示缺少libssl.so文件,则需要ln -sf /lib/libssl.so.1.0.0 /lib/libss.so,如果采用的静态库编译则不存在此情况,如果觉得麻烦可以在cmake中改为静态编译,生成librabbitmq.a库文件。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值