zoukankan      html  css  js  c++  java
  • 构建NDK交叉编译链

    有时我们需要单独编译个c文件,生成一个ELF在Android上面跑,NDK提供了一个 make-standalone-toolchain.sh 脚本,用于生成一套特定平台的交叉编译工具链

    使用方法如下:

    kiiim@ubuntu :~/aosp/android-ndk-r10d$ ./build/tools/make-standalone-toolchain.sh --arch=arm --platform=android-21 --install-dir=~/ndk_arm_android21 --toolchain=arm-linux-androideabi-4.9 --system=linux-x86_64
    Copying prebuilt binaries...
    Copying sysroot headers and libraries...
    Copying c++ runtime headers and libraries...
    Copying files to: ~/ndk_arm_android21
    Cleaning up...
    Done.
    

    简记一下参数设置:

    –arch 选择目标平台,除了arm还有下面几种:

    Toolchain	Value
    mips64 compiler	--arch=mips64
    mips GCC 4.8 compiler	--arch=mips
    x86 GCC 4.8 compiler	--arch=x86
    x86_64 GCC 4.8 compiler	--arch=x86_64
    mips GCC 4.8 compiler	--arch=mips
    

    –platform 设置Anroid API Level

    –install-dir 指定生成的工具链目录

    –toolchain 设置编译器环境,可以是GCC或者CLANG

    Toolchain	Value
    arm	
    --toolchain=arm-linux-androideabi-4.8
    --toolchain=arm-linux-androideabi-4.9
    --toolchain=arm-linux-android-clang3.5
    --toolchain=arm-linux-android-clang3.6
    x86	
    --toolchain=x86-linux-android-4.8
    --toolchain=x86-linux-android-4.9
    --toolchain=x86-linux-android-clang3.5
    --toolchain=x86-linux-android-clang3.6
    mips	
    --toolchain=mips-linux-android-4.8
    --toolchain=mips-linux-android-4.9
    --toolchain=mips-linux-android-clang3.5
    --toolchain=mips-linux-android-clang3.6
    arm64	
    --toolchain=aarch64-linux-android-4.9
    --toolchain=aarch64-linux-android-clang3.5
    --toolchain=aarch64-linux-android-clang3.6
    x86_64	
    --toolchain=x86_64-linux-android-4.9
    --toolchain=x86_64-linux-android-clang3.5
    --toolchain=x86_64-linux-android-clang3.6
    mips64	
    --toolchain=mips64el-linux-android-4.9
    --toolchain=mips64el-linux-android-clang3.5
    --toolchain=mips64el-linux-android-clang3.6
    

    –system 指定工作环境,比如在ubuntu 64位下,就指定linux-x86_64,其它平台还有:

    Host toolchain	Value
    64-bit Linux	-system=linux-x86_64
    64-bit MacOSX	-system=darwin-x86_64
    64-bit Windows	-system=windows-x86_64
    

    参考:

    https://developer.android.com/ndk/guides/standalone_toolchain.html

  • 相关阅读:
    ef core中如何实现多对多的表映射关系
    asp.net mvc 实现简单的实时消息推送
    C#中三层架构UI、BLL、DAL、Model实际操作
    搭建连接MySql的三层架构的ASP.NetCore2.0的WebApi
    基于.NET Core 框架搭建WebApi项目
    16位GUID
    VS2017企业版的密钥
    通过微软的cors类库,让ASP.NET Web API 支持 CORS
    Web API 跨域访问(CORS)
    [HDU1394]Minimum Inversion Number
  • 原文地址:https://www.cnblogs.com/gm-201705/p/9864054.html
Copyright © 2011-2022 走看看