怎么用linux写c语言

怎么用linux写c语言,第1张

Linux正在成为开发人员的编程天堂,成为开源和免费 *** 作系统。 Turbo C编译器已经是一种编译程序的旧方法,所以让程序薯中员转向Linux以获得新的编程环境。 在本文中,我们将解释如何编写,编译和运行一个简单的C程序。 这将成为您迁移到可以在Linux上编写和执行的更复杂和有用的C程序的基础。

我们在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.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12415915.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存