生成Android可执行文件命令笔记

下载NDK : https://developer.android.google.cn/ndk/downloads/

1 生成一个main.c文件

cd Volumes/SoftCode/DongNaoVIP/ndk/hxndk

vim main.c //进入到输入模式

i //insert模式

//添加代码
#include <stdio.h>

int main(){

  printf("hongxue123\n");

  return 0;

}

按下esc按键,进入到命令模式

:wq      //就会生成main.c文件


2 将main.c生成为Android可执行文件main

export CC=/Volumes/Docment/soft/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc



 export AAA="--sysroot=/Volumes/Docment/soft/android-ndk-r17c/platforms/android-21/arch-arm -isystem /Volumes/Docment/soft/android-ndk-r17c/sysroot/usr/include -isystem /Volumes/Docment/soft/android-ndk-r17c/sysroot/usr/include/arm-linux-androideabi"



cd Volumes/SoftCode/DongNaoVIP/ndk/hxndk



$CC $AAA -pie main.c -o main


3 将main文件导入到手机data/local/tmp/ 目录下面,并执行




cd Volumes/SoftCode/DongNaoVIP/ndk/hxndk



adb devices



//adb push main /sdcard   

adb push main data/local/tmp/ 



adb shell



ls



//cd sdcard

cd data/local/tmp/ 

ls

./main //运行查看结果


注如果选择sdcard会有权限问题,除非手机有root权限。所以还是 cd data/local/tmp/

–sysroot=XX
使用xx作为这一次编译的头文件与库文件的查找目录,查找下面的 usr/include usr/lib目录
-isysroot XX
头文件查找目录,覆盖–sysroot ,查找 XX/usr/include
-isystem XX
指定头文件查找路径(直接查找根目录)
-IXX
头文件查找目录
优先级:
-I -> -isystem -> sysroot
-LXX
指定库文件查找目录
-lxx.so
指定需要链接的库名

4 生成动态库

生成test.c文件,代码如下:

#include <stdio.h>

int test(){

  printf("hongxue test\n");

  return 0;

}

生成动态库,名为libTest.so

$CC $AAA -fPIC -shared test.c -o libTest.so

-shared表示生成动态库


查看so文件

 cd Library/Android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin
arm-linux-androideabi-nm /Volumes/SoftCode/DongNaoVIP/ndk/hxndk/libTest.so

在这里插入图片描述


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值