设为首页 加入收藏

TOP

Java JNI的使用基础(二)
2015-12-15 23:09:05 来源: 作者: 【 】 浏览:3
Tags:Java JNI 使用 基础
m-V的函数调用约定,具体可参考——http://www.cocoachina.com/bbs/read.php?tid-66986.html


下面看看汇编源文件(asmtest.s):


.text
.align 2


.globl asmTest


asmTest:


? ? mov? ? ? ? $15, %eax
? ? ret


完成了C源代码以及汇编代码之后,我们将写一个简单的shell文件把它们分别编译,然后再连接成一个so动态共享库文件。


gcc -Wall -c -I/home/zenny_chen/MyPrograms/eclipse/jdk/include -I/home/zenny_chen/MyPrograms/eclipse/jdk/include/linux a.c
gcc -Wall -c asmtest.s
gcc -shared -z noexecstack -o libctest.so a.o asmtest.o


由于jni.h在 jdk/include 下,而jni_md.h则是在 jdk/include/linux 下(其它操作系统则是其它操作系统的名称),因此,这里要把两个头文件包含路径都加上。另外,最后的-z noexecstack要加,因为Java会对栈进行检查,如果没有此连接选项,Java在调用此函数时就会报warning(比较烦人,呼呼~)。最后,连接生成的库名就是libctest.so,这个文件名必须与Java中loadLibrary的库名一致。


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Python3 多线程下载代码 下一篇Objective-C如何自己实现一个for-..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: