// 获取 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