主题 : Android的NDK编译的动态链接库.so如何在Linux移植 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 55992
精华: 0
发帖: 9
金钱: 45 两
威望: 9 点
综合积分: 18 分
注册时间: 2011-09-27
最后登录: 2011-11-10
楼主  发表于: 2011-09-28 11:38

 Android的NDK编译的动态链接库.so如何在Linux移植

我有一个设备是用i2c来控制的,我有在Android2.2上的NDK源码,和我编译生成的.so库文件。由于Android本身也是Linux内核,我想问下,在Linux下可以直接用这个库函数么?还是需要重新编译或者移植,需要怎么弄?请指点。。。我承认我没思路
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2011-09-28 12:26
很不幸,不可以,Android NDK所用的底层库,toolchain和一般的Linux都是不同的。你需要用Linux的交叉编译工具重新编译你的库的源代码。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 55992
精华: 0
发帖: 9
金钱: 45 两
威望: 9 点
综合积分: 18 分
注册时间: 2011-09-27
最后登录: 2011-11-10
2楼  发表于: 2011-09-29 14:26

 回 1楼(kasim) 的帖子

谢谢楼上的大大,那继续请问,就是用我NDK编译用的源文件在Linux下编译就可以么?不需要修改么?
Linux的交叉编译是指gcc++?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2011-11-10 16:07

 回 2楼(zmsunsky) 的帖子

这取决于你的源文件里是否包含只有Android才有的东西。如果有,你需要把它们改成GNU/Linux下替代的。Linux下的交叉编译工具指的是产生ARM上的GNU/Linux的ELF可执行档所用的工具,也就是通常说的arm-linux-gcc
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."