扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
xx是你的.so文件名 其实使用方法和你使用数学库函数是一样的,源代码中添加 include math.h,编译的时候,加上-lm参数。注:linux下的.so文件为共享库,相当于windows下的dll文件。
创新互联主营噶尔网站建设的网络公司,主营网站建设方案,重庆APP开发,噶尔h5成都小程序开发搭建,噶尔网站营销推广欢迎噶尔等地区企业咨询
“HelloWorld”,可我们生成的Library却是libHelloWorld。这是Linux的链接规定的,一个库的必须要是:lib+库 名+.so。链接的时候只需要提供库名就可以了。
.so 吗? 是linux的动态链接库文件,不能运行,是给其它程序调用的函数库。
.so结尾的文件是动态链接库,动态链接库不能主动运行,只能被动调用。
在/lib目录下,就有许多以.so作后缀的文件,这就是LINUX系统应用的动态链接库,只不过与WINDOWS叫法不同,它叫so,即Shared Object,共享对象。
其实和linux下的so文件是一回事,so文件也是编译好了的二进制的链接库文件,一般来说都是c或c++编译出来的,java的话通常是用的字节码,也就是class文件。
xx是你的.so文件名 其实使用方法和你使用数学库函数是一样的,源代码中添加 include math.h,编译的时候,加上-lm参数。注:linux下的.so文件为共享库,相当于windows下的dll文件。
JAVA_HOME=/root/JDK/jdk0_24 RUNNING_USER、APP_HOME、APP_MAINCLASS、CLASSPATH根据自己项目的情况修改即可。如果在windows下编辑上传到linux,注意用dos2unix命令转换文件格式,不然会报错。
.so结尾的文件是动态链接库,动态链接库不能主动运行,只能被动调用。
只做下面一个测试,应该就可以找到根源:确定是否是否是没找到so文件。在web环境下,先把License.java中的System.loadLibrary给换成绝对地址,即System.load的形式。如果执行正常,问题就明了了。再试下吧。
.so库有两种调用方法:新建main.c文件:使用命令 gcc -o main main.c -lsort -L. 编译。新建mainc文件:使用命令 gcc -o main2 mainc -ldl 编译。动态加载.so库的话需要-ldl。
.so结尾的文件是动态链接库,动态链接库不能主动运行,只能被动调用。
其实和linux下的so文件是一回事,so文件也是编译好了的二进制的链接库文件,一般来说都是c或c++编译出来的,java的话通常是用的字节码,也就是class文件。
在/lib目录下,就有许多以.so作后缀的文件,这就是LINUX系统应用的动态链接库,只不过与WINDOWS叫法不同,它叫so,即Shared Object,共享对象。
-lxx xx是你的.so文件名 其实使用方法和你使用数学库函数是一样的,源代码中添加 include math.h,编译的时候,加上-lm参数。注:linux下的.so文件为共享库,相当于windows下的dll文件。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流