AHugeApe

导航

JNI工程搭建及编译

JNI工程搭建及编译##

  1. 建立Java工程
    在具有C/C++比编译器的Eclipse中进行工程的创建,先创建一个简单的Java project,选项和一般同,这里仅仅需要将要调用的C/C++函数声明为native,注意C/C++中的数据类型Java中的转换.
  2. 生成Java工程的头文件
    将Java工程中的类文件和本地函数的声明定义好后,使用命令行,win+r,在Java工程中src文件夹下,即Java的包的第一层,使用javah命令:javah -jni java包名+类名编译得到一个.h类型的文件,其余的名字应该类似包名加类名,不过两者以_下划线隔开.
  3. 建立一个C/C++工程.
    注意左下的Project type中选择Sharded Library类型,将源码和头文件一一添加之后,将上面产生的.h文件考入到工程中,根据.h文件中的函数声明修改C/C++工程的实现.
    ![注意工程选择为Shared Library](http://7xjjqm.com1.z0.glb.clouddn.com/c++ shared library.jpg)
  4. jni.h头文件加入到C/C++工程中.
    对工程右键选中Properties选项,选择C/C\++ Build选项卡中的GCC C Complier下的Include选项中中增加:{$JAVA_HOME}/include{$JAVA_HOME}/include/win32两个路径.
    将jni.h加入到工程的include目录中
  5. 编译生成dll文件
    在编译的时候注意,不是直接debug运行,先在工程中右键生成target再编译.将得到的dll放入到Java工程的根目录,根目录即同src文件夹所在的目录,自然是在path下,在Java中先使用静态代码块调用system.loadlibrary("libxxx"),然后就可以正常使用了.

ERROR:

  1. 编译C/C++工程的时候报如下错误:
    使用标准std99
    在选项中的Miscellananeous加上-std=11即可

posted on 2018-03-23 10:15  普陀听禅  阅读(235)  评论(0编辑  收藏  举报