26 Linux中通过Shell编译动态库.so和静态库.a

Android Ndk 学习笔记(目录)

// 获取 NDK 的 gcc 
export NDK_GCC="/home/xinyonghu/ndk/tools/android-ndk-r17c/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-gcc"

export NDK_GCC_32="/home/xinyonghu/ndk/tools/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc"

// 编译 Android 可执行的 exe 文件
$NDK_GCC main.c -o mainNDKEXE

//寻库文件头文件
/home/xinyonghu/ndk/tools/android-ndk-r17c/platforms/android-21/arch-arm64
/home/xinyonghu/ndk/tools/android-ndk-r17c/platforms/android-21/arch-arm

//寻找头文件
/home/xinyonghu/ndk/tools/android-ndk-r17c/sysroot/usr/include
/home/xinyonghu/ndk/tools/android-ndk-r17c/sysroot/usr/include

//C运行期 寻找asm
/home/xinyonghu/ndk/tools/android-ndk-r17c/sysroot/usr/include/aarch64-linux-android
/home/xinyonghu/ndk/tools/android-ndk-r17c/sysroot/usr/include/arm-linux-androideabi


【--sysroot=路径(自动寻找 头文件,库文件 .h/.a/.so)】
【-isystem 路径(自动寻找 头文件)】
//中间是英文空格 切不能换行

export OTHER="--sysroot=/home/xinyonghu/ndk/tools/android-ndk-r17c/platforms/android-21/arch-arm64 -isystem /home/xinyonghu/ndk/tools/android-ndk-r17c/sysroot/usr/include -isystem /home/xinyonghu/ndk/tools/android-ndk-r17c/sysroot/usr/include/aarch64-linux-android"

export OTHER32="--sysroot=/home/xinyonghu/ndk/tools/android-ndk-r17c/platforms/android-21/arch-arm -isystem /home/xinyonghu/ndk/tools/android-ndk-r17c/sysroot/usr/include -isystem /home/xinyonghu/ndk/tools/android-ndk-r17c/sysroot/usr/include/arm-linux-androideabi"

$NDK_GCC $OTHER main.c -o mainNDKEXE


$NDK_GCC -pie $AAA main.c -o mainNDKEXE

在这里插入图片描述

生成动态库 libgetndk.so
$NDK_GCC $OTHER -fPIC -shared get.c -o libgetndk.so
$NDK_GCC_32 $OTHER32 -fPIC -shared get.c -o libgetndk.so

在这里插入图片描述

export NDK_AR_ARM64="/home/xinyonghu/ndk/tools/android-ndk-r17c/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar"

export NDK_AR_ARM32="/home/xinyonghu/ndk/tools/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-ar"
Linux服务器可以用的 静态库:
第一步:必须有目标文件 xxx.o
第一步:必须使用NDK交叉编译 打出 xxx.o
$NDK_GCC $OTHER -fPIC -c get.c -o getndk.o
$NDK_GCC_32 $OTHER32 -fPIC -c get.c -o getndk.o
第二步:编译静态库即可
$NDK_AR_ARM64 rcs libgetndk.a getndk.o
$NDK_AR_ARM32 rcs libgetndk.a getndk.o

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值