android 静态链接,android通过C代码实现动态和静态链接

ANDROID中静态链接C文件:

0,首先安装gcc相关的编译器,具体不详述,笔者用的是mingw,也可以用其他的编译器,网络上很多安装详解,本文不做叙述。

1,创建C代码,命名为hello,编写内容:

#include

int main(){

printf("hello c!!!");

return 0;

}

2,进入c文件指定的目录中比如:d:\test中,通过gcc hello.c 或者gcc hello.c -static -o hellostatic命令生成可执行的exe文件。

注意:如果有no new line end the file的警告,在你编程的末尾敲一个回车就可以

3,启动模拟器,通过adb命令(首先adb命令必须配置好,否则会有不支持命令错误),adb shell -->> cd data -->> mkdir c创建c文件夹4,进入c文件指定的目录中比如:d:\test中,执行D:\test>adb push hellostatic.exe /data/c,将文件载入到c文件中,5,通过adb shell 命令,进入到c文件中,如:adb shell-->>cd data-->> cd c -->ls 执行chmod 777 hellostatic.exe 如# chmod777 hellostatic.exe (设置权限)

6,继续通过 ./hellostatic.exe命令执行程序,将会出现;‘hello c!!!‘

总结:对于静态链接生成的可执行文件比较大,不需要依赖任何系统库,一切都是自包含的。

动态链接:

1,同上执行命令:D:\test>gcc -c Hello.c -o hello.o因为使用的是动态链接,所以链接时候必须用到ANDROID下Linux的libraries。此类库位于/system/lib 目录下,

2, 进入system文件夹下,执行ls列出文件,其中有个是lib的目录,进入并将其内容列出。各种so文件,同样也有hw等文件夹,为了能正确的链接程序,我们将此目录(system/lib)中的所有库文件复制到本地文件夹中,通过adb pull命令,如C:\Users\Administrator>adbpull

/system/lib d:\LIB\android_lib

3

9036c0d7a9a45547632aa515e773be95.png

4,通过上面的图片执行后,接下来的步骤如静态链接相似,执行命令(安装)adb push->(控制权限)adb shell chmod 777->(运行)adb shell /data/c/hello.exe

原文:http://blog.csdn.net/u012083681/article/details/22961715

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值