java 调用gcc so
mkdir -pv com/mpjni
cd com/mpjni
vi mpjni.java
package com.mpjni;
public class mpjni
{
static
{
System.loadLibrary("testmp");
}
public native static int get();
public native static void set(int i);
public static void main(String[] args)
{
mpjni app=new mpjni();
mpjni.set(10);
System.out.println(mpjni.get());
}
}
编译
javac mpjni.java
cd ../..
javah com.mpjni.mpjni
可以产生 com_mpjni_mpjni.h
vi mpjni.c
#include "com_mpjni_mpjni.h"
int i=0;
JNIEXPORT jint JNICALL Java_com_mpjni_mpjni_get(JNIEnv *env,jclass jc)
{
return i;
}
JNIEXPORT void JNICALL Java_com_mpjni_mpjni_set(JNIEnv *env,jclass jc,jint j)
{
i=j;
}
编译mpjni.c
gcc -fPIC -D_REENTRANT -I/java/include -I/java/include/linux -c mpjni.c
注:/java/include 是jni.h头文件所在的路径
/java/include/linux 是jni_md.h所在的路径
gcc -shared mpjni.o -o libtestmp.so
testmp 是你上面System.loadLibrary("testmp");的名字
格式为libxxxxxx.so
export LD_LIBRARY_PATH=`pwd`
echo $LD_LIBRARY_PATH
java com.mpjni.mpjni
运行结果为 10
以下方法可以直接利用绝对路径来load这个so库文件
static
{
System.load("/root/jni/libtestmp.so");
}
如果需要String 字符串转换
请到
http://download.csdn.net/detail/qvb3d/5014815
下载
我又更改添加字符串
C jstring -> Java String
Java String -> C jstring
以下转换
int
float
double
string
char *
C->Java
Java->C
可以到
http://download.csdn.net/detail/qvb3d/5015477
下载
相关推荐
gcc-java-4.1.2.tar.gz
提供一段代码,通过已有数据库的匹配,判题.实现自动判题功能
aarch64架构下CentOS7,gcc4.5.8,cmake 2.82.12.2 编译生成的libopencv_java342.so和opencv-342.jar。
autoconf automake实例gcc编译java方法.txt,gcc的组件和软件工具 .txt,gcc库.txt,gdb自己总结.txt,linux 下gcc 编程.ppt,linux下JAVA环境设置.pdf,Vi指令大全.htm,跟我一起写 Makefile.pdf
Demo在Paddle-Lite/build.lite.android.armv8.gcc/inference_lite_lib.android.armv8/demo/java/android/下。 这里有一个脚本prepare_demo.bash可以自动拷贝so库、jar包和模型文件到android工程下对应的位置。 bash...
收集一个函数调用的踪迹,一种方法是通过在函数的入口处和出口处插入一个打印语句来检测。这个过程非常繁琐,而且很容易出错,通常需要对源代码进行大量的修改。 幸运的是,GNU 编译器工具链(也称为 gcc)提供了一...
//调用libtest.so下到test_a函数 clib.setRetVal(Type.STRING); //设置此函数的返回值 clib.invoke(); //函数执行 System.out.println(clib.getRetVal());//输出函数返回结果 //qt写到动态库 //以下部分使用...
需要熟悉GCC的请下载
C++编写的共享库,用gcc编译连接,分别生成.so和.a,C编写的main,用gcc编译,连接.so和.a调用的简单例子
pclint gcc配置
解压后有libstdc++.so.6.0.0.20,libstdc++.so.6.0.0.24两个文件,用来替换/usr/lib/x86_64-linux-gnu中libstdc++.so.6.*,解决版本过低或过高的问题
调用java源码C / C ++ IDE 这是非常简单的C / C ++ ide。 它只是调用gcc编译器(来自代码块)来编译源代码。 首先,将代码块mingw bin路径添加到环境变量中很重要(Windows系统属性)。 然后使用Netbeans打开该项目
功能是jni函数调用java函数弹出一个字符串,显示“在那遥远的地方,UNICODE编码转换工具。”弹窗背景色是随机的。 例程C++代码是src文件夹下名字最长的那个cpp文件。java主程序是sample.razerpen.jni.TestJNI。 ...
gcc-java-3.4.6-10.i386.rpm
gcc4-java-4.1.0-18.EL4.ia64.rpm
gcc manual gcc手册 gcc manual gcc手册 gcc manual gcc手册 gcc manual gcc手册
GCC静态库和共享库的生成及调用 GCC静态库和共享库的生成及调用
首先,GCC需要调用预处理程序cpp,由它负责展开在源文件中定义的宏,并向其中插入“#include”语句所包含的内容;接着,GCC会调用ccl和as将处理后的源代码编译成目标代码;最后,GCC会调用链接程序ld,把生成的目标...
gcc的组建,linux下编译java的软件,很不错的
用GCC编译器制作静态库和动态库的方法简介。