如何将开源项目打包成.so文件

时间:2022-05-11 09:32:11
大家好,

在这里问个新手级别的问题。我是做Android开发的,对于C不是很熟。

但是最近要做一个Android的VPN客户端,由于没找到基于Java的VPN开源库,只找到了C语言编写的开源客户端,叫做PPTP Client,这个代码是公开的。

我想把这个开源项目的C代码打包成so文件,然后放到我的Android项目中,在JAVA代码中通过JNI调用PPTP Client,实现VPN连接。

我觉得是可行啊,但是不知道如何把PPTP的代码打包成so文件...是否需要自己写makefile什么的?

7 个解决方案

#1


.so文件一般是动态链接库的后缀.你可以看看gcc的使用手册,上面有自己生成动态链接库.so的步骤和方法.或者直接baidu和google

#2


用ldd命令可以查看.so依赖的其它.so

#3


肯定需要改代码,自己设计需要抛出的函数

#4


开源项目难道不支持打成动态库吗?

#5


就算不支持,对于linux来讲,生成so也只是多加一个编译选项,多加一个链接选项的事,其他毫无变化。

#6


在windows上开发么,搞个cygwin,里面直接有例子,makefile什么的例子都有,生成的so库直接load进java工程就好了。

#7


自己写个Android.mk 可以用eclipse自动生成,也可放在android源码中编译生成动态库

#1


.so文件一般是动态链接库的后缀.你可以看看gcc的使用手册,上面有自己生成动态链接库.so的步骤和方法.或者直接baidu和google

#2


用ldd命令可以查看.so依赖的其它.so

#3


肯定需要改代码,自己设计需要抛出的函数

#4


开源项目难道不支持打成动态库吗?

#5


就算不支持,对于linux来讲,生成so也只是多加一个编译选项,多加一个链接选项的事,其他毫无变化。

#6


在windows上开发么,搞个cygwin,里面直接有例子,makefile什么的例子都有,生成的so库直接load进java工程就好了。

#7


自己写个Android.mk 可以用eclipse自动生成,也可放在android源码中编译生成动态库