rabbitmq-c 移植到周立功EPC287嵌入式arm单板中运行过程

rabbitmq-c 移植到周立功EPC287嵌入式arm单板中运行过程

简介

为了在epc287 arm板子上运行rabbitmq,提高数据传输的可靠性、稳定性,需要将rabbitmq 交叉编译为arm可使用的库。

过程

  • 在https://github.com/alanxz/rabbitmq-c/releases/tag/v0.9.0网站下载rabbitmq-c源码,并解压

  • 在源码目录下新建文件夹 build

  • 在build目录下新建文件ToolChain.cmake
    内容如下:

    set(CMAKE_SYSTEM_NAME Linux)
    set(CMAKE_SYSTEM_VERSION 1)
    set(CMAKE_C_COMPILER "arm-fsl-linux-gnueabi-gcc")
    set(CMAKE_CXX_COMPILER "arm-fsl-linux-gnueabi-g++")
    SET(CMAKE_FIND_ROOT_PATH "/opt/arm-fsl-linux-gnueabi")
    SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
    SET(OPENSSL_INCLUDE_DIR "/opt/openssl/include")
    SET(OPENSSL_LIBRARIES "/opt/openssl/lib")
    SET(OPENSSL_ROOT_DIR "/opt/openssl")
    SET(OPENSSL_CRYPTO_LIBRARY "/opt/openssl/lib/libcrypto.a" )
    SET(OPENSSL_SSL_LIBRARY "/opt/openssl/lib/libssl.a")
    SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
    SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
    

    其中,arm-fsl-linux-gnueabi-gcc 为EPC287的交叉编译环境,根据实际路径更改
    编译过程中,需要openssl支持,openssl也需要预先交叉编译好以后放在/opt/openssl目录中

  • 在build目录下运行

    cmake -DCMAKE_TOOLCHAIN_FILE=./ToolChain.cmake ..
    

    如果正常,结果如下:
    cmake ok
    在编译过程中,出现undefined reference `dlopen’ 等错误,解决办法是在CMakeLists.txt这一段代码的倒数第三行,增加 -ldl

    if (MSVC)
      set(CMAKE_C_FLAGS "/W4 /nologo ${CMAKE_C_FLAGS}")
      
    elseif (CMAKE_C_COMPILER_ID MATCHES ".*Clang")
      set(CMAKE_C_FLAGS "-Wall -Wextra -Wstrict-prototypes -Wno-unused-function -fno-common -fvisibility=hidden ${CMAKE_C_FLAGS}")
      
    elseif (CMAKE_COMPILER_IS_GNUCC)
      set(RMQ_C_FLAGS "-Wall -Wextra -Wstrict-prototypes -Wno-unused-function -fno-common")
      execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
      if (GCC_VERSION VERSION_GREATER 4.0 OR GCC_VERSION VERSION_EQUAL 4.0)
          set(RMQ_C_FLAGS "${RMQ_C_FLAGS} -fvisibility=hidden")
      endif()
      set(CMAKE_C_FLAGS "-ldl ${RMQ_C_FLAGS} ${CMAKE_C_FLAGS}")
      message(STATUS "COMPILIER : CMAKE_COMPILER_IS_GNUCC")
    endif ()
    
  • 运行 cmake --build .
    在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值