我们在Ubuntu 18.04 LTS系统上运行了本文中提到的步骤和命令。
我们将使用Linux命令行工具Terminal,以编译一个简单的C程序。 要打开终端,您可以使用Ubuntu Dash或Ctrl + Alt + T快捷方式。
第1步:安装build-essential软件包
为了编译和执行C程序,您需要在系统上安装必要的软件包。 在Linux终端中以root用户身份输入以下命令:
sudo apt-get install build-essential
系统会要求您输入root用户密码安装过程将在此之后开州余始。 请确保您已连接到互联网。
第2步:编写一个简单的C程序
安装必要的软件包之后,让我们编写一个简单的C程序。
打开Ubuntu的图形文本编辑器,将以下示例程序写入或复制到其中:
#include<stdio.h>
int main()
{
printf("nA sample C program www.linuxidc.comnn")
return 0
}
然后使用.c扩展名保存文件。 在这个例子中,我将我的C程序命名为linuxidc.c
或者,您可以通过gedit中的终端编写C程序,如下所示:
gedit linuxidc.c
这将创建一个.c文件数迹山,您可以在其中编写和保存程序。
第3步:使用gcc编译C程序
在终端中,输入以下命令以生成您编写的程序的可执行版本:
句法:
$ gcc [programName].c -o programName
示例:
$ gcc linuxidc.c -o linuxidc
java
public class HelloWorld{
static
{
System.loadLibrary("native")
//对应C语言 动态库的名字
}
private native int hello(int[]arr,int num)
public static void main (String [] args)
{
int[]arr = {1,2,3,4}
HelloWorld n = new HelloWorld()
System.out.println(n.hello(arr,arr.length))
}
}
头文件
#ifndef _Included_HelloWorld#define _Included_HelloWorld
#ifdef __cplusplus
extern 模纯桐"C" {
#endif
/*
* Class: HelloWorld
* Method: hello
* Signature: ([I)I
*/
JNIEXPORT jint JNICALL Java_HelloWorld_hello
(JNIEnv *, jobject, jintArray)
#ifdef __cplusplus
}
#endif
#endif
c
#include <jni.h>jint jhello(JNIEnv *env,jobject obj,jintArray arr,jint num)
{
jint *carr
jint i, 旦坦sum = 0
carr = (*env)->GetIntArrayElements(env, arr, NULL)
if (carr == NULL) {
return 0 /* exception occurred */
}
for (i=0 i<num i++) {
sum += carr[i]
}
(*env)->ReleaseIntArrayElements(env, arr, carr, 0)
return sum
}
JNINativeMethod method[] =
{
"hello","([II)I",(void *)jhello,
}
jint JNI_OnLoad(JavaVM *jvm,void *reserved)
{
printf("jnionload \n")
JNIEnv *env
jclass jcls
if((*jvm) ->GetEnv(jvm,(void **)&env,JNI_VERSION_1_2))
{
return JNI_ERR
}
裤嫌jcls = (*env) -> FindClass(env,"HelloWorld")
if(jcls == NULL)
{
return JNI_ERR
}
(*env) -> RegisterNatives(env,jcls,method,sizeof(method)/sizeof(JNINativeMethod))
return JNI_VERSION_1_2
}
主要是用jni.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)