zoukankan      html  css  js  c++  java
  • libuv的交叉编译

    libuv的交叉编译

    希望在arm linux下研究libuv,首先需要解决libuv的编译问题,在Linux机器上交叉编译出libuv来。

    1.环境

    Host环境:Ubuntu 18.04.5 (PC)

    编译工具链:arm-himix200-linux(解包自arm-himix200-linux.tgz,据说来自Hi3516dv300SDK),海思提供的arm编译工具链

    环境变量:执行命令:export PATH=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin:$PATH

    libuv目标安装目录:/data/app

    编译器arm-himix200-linux默认输出的ELF格式为private flags = 5000200: [Version5 EABI] [soft-float ABI],与ubuntu-armhf的格式private flags = 5000400: [Version5 EABI] [hard-float ABI]不兼容(soft-float ABI与hard-float ABI的传参规则不一样,因此会不兼容)。

    2.版本

    下载链接:https://dist.libuv.org/dist/v1.42.0/libuv-v1.42.0.tar.gz

    在当前目录中创建一个cross.cmake文件,内容如下:

    set(CMAKE_SYSTEM_NAME Linux)
    
    set(TOOLCHAIN_PATH "/opt/hisi-linux/x86-arm/arm-himix200-linux")
    set(CMAKE_C_COMPILER ${TOOLCHAIN_PATH}/bin/arm-himix200-linux-gcc)
    set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PATH}/bin/arm-himix200-linux-g++)
    SET(CMAKE_FIND_ROOT_PATH "/data/app")
    

    编译命令如下:

    mkdir build && cd build
    env PKG_CONFIG_LIBDIR=/data/app/lib/pkgconfig/ CFLAGS="-O2 -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4 " cmake -DCMAKE_TOOLCHAIN_FILE=../cross.cmake -DCMAKE_INSTALL_PREFIX=/data/app -DCMAKE_INSTALL_LIBDIR=lib -DLIBUV_BUILD_TESTS=OFF -DLIBUV_BUILD_BENCH=OFF ..
    make VERBOSE=1
    make DESTDIR=/XXX install
    

    执行命令后,将安装libuv相应的共享库、头文件等至/XXX目录下。

  • 相关阅读:
    leetcode-383-Ransom Note(以空间换时间)
    AtCoder
    AtCoder
    Hadoop序列化案例实操
    Java实现MapReduce Wordcount案例
    HDFS常用API操作 和 HDFS的I/O流操作
    HBase常用的JAVA API操作
    ZooKeeper之服务器动态上下线案例
    机器学习(6)——逻辑回归
    机器学习(5)——多项式回归与模型泛化
  • 原文地址:https://www.cnblogs.com/eaglexmw/p/15588963.html
Copyright © 2011-2022 走看看