HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    c在线编译器(codeorg编程网站)

    发布时间:2023-03-13 01:53:56     稿源: 创意岭    阅读: 116        问大家

    大家好!今天让创意岭的小编来大家介绍下关于c在线编译器的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    ChatGPT国内免费在线使用,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端

    官网:https://ai.de1919.com

    本文目录:

    c在线编译器(codeorg编程网站)

    一、如何用java调用c语言编译器实现在线编译c语

    要在java中调用c语言的库,需要使用Java提供了JNI。

    举例说明

    在c语言中定义一个 void sayHello()函数(打印Hello World);然后在Java中调用这个函数显示Hello Word.

    现在分别从Java和C语言两部分说明:

    1. Java 部分

    首先定义一个HelloNative,在其中申明sayHello函数,函数要申明为Native 类型的.如下:

    public class HelloNative {

    public native void sayHello();

    }

    编译这个类,生成class文件:

    javac HelloWorld.java

    利用javah生成需要的h文件

    javah HelloNative

    生成的 h文件大概如下:

    /* DO NOT EDIT THIS FILE - it is machine generated */

    #include <jni.h>

    /* Header for class HelloNative */

    #ifndef _Included_HelloNative

    #define _Included_HelloNative

    #ifdef __cplusplus

    extern "C" {

    #endif

    /*

    * Class: HelloNative

    * Method: sayHello

    * Signature: ()V

    */

    JNIEXPORT void JNICALL Java_HelloNative_sayHello

    (JNIEnv *, jobject);

    #ifdef __cplusplus

    }

    #endif

    #endif

    可以看一下上面自动生成的程序,程序include了jni.h,这个头文件在 $JAVA_HOME下的include文件夹下. 还可以发现生成的函数名是在之前的函数名前面加上了Java_HelloNative。

    2. C语言部分

    根据上面生成的h文件编写相应的代码实现,建立一个 HelloNative.cpp用来实现显示Hello World的函数.如下:

    #include <stdio.h>

    #include "HelloNative.h"

    JNIEXPORT void JNICALL Java_HelloNative_sayHello(JNIEnv *, jobject)

    {

    printf("Hello World!\n");

    }

    代码编写完成之后,我们再用gcc编译成库文件,命令如下;

    gcc -fPIC -I/usr/lib/jvm/java-7-openjdk-i386/include -I/usr/lib/jvm/java-7-openjdk-i386/include/linux -shared -o libHelloNative.so HelloNative.cpp

    这样就会在当前目录下生成一个libHelloNative.so的库文件.这时需要的库已经生成,在C语言下的工作已经完成了.

    接下来需要在Java中编写一个程序测试一下.在程序前,需要将我们的库载入进去.载入的方法是调用Java的 System.loadLibrary("HelloNative");

    public class TestNative

    {

    static {

    try {

    System.loadLibrary("HelloNative");

    }

    catch(UnsatisfiedLinkError e) {

    System.out.println( "Cannot load hello library:\n " + e.toString() );

    }

    }

    public static void main(String[] args) {

    HelloNative test = new HelloNative();

    test.sayHello();

    }

    }

    但是再编译后,运行的时候,问题又出现了.

    Cannot load hello library:

    java.lang.UnsatisfiedLinkError: no HelloNative in java.library.path

    Exception in thread "main" java.lang.UnsatisfiedLinkError: HelloNative.sayHello()V

    at HelloNative.sayHello(Native Method)

    at TestNative.main(TestNative.java:13)

    载入库失败,但是库明明就是放在当前文件夹下的,怎么会载入失败呢?

    用System.getProperty("java.library.path")查看,发现java.library.path中并不u存在当前的目录.主要有以下的几个解决办法:

    1) 将生成的库复制到java.library.path有的路径中去,当然这样不是很好

    2) 设置环境变量export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ,将当前的目录加入到LD_LIBRARY_PATH中

    3) 设置java 的选项,将当前的目录加入到其中 .java -Djava.library.path=. $LD_LIBRARY_PATH

    这样之后程序就能够成功的运行了.可以看见显示的"Hello World!"了

    二、在线C语言编译器

    虽然这种东西可以做出来,但是也太无聊了。。自己下个VC还好

    三、(c在线编译器)用jsp做一个网站,能提取用户在文本域中输入的文字(其实就是c代码)

    不是request.getParameter()么?

    四、在C语言中system("cls") 怎么用?

    需要准备的材料分别有:电脑、C语言编译器。

    1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

    c在线编译器(codeorg编程网站)

    2、在test.cpp文件中,输入C语言代码:printf("test system cls");system("cls");。

    c在线编译器(codeorg编程网站)

    3、编译器运行test.cpp文件,此时成功通过system("cls") 进行了输出内容的清屏。

    c在线编译器(codeorg编程网站)

    以上就是关于c在线编译器相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


    推荐阅读:

    c在线编译器(codeorg编程网站)

    皇艺景观设计(皇艺设计学院)

    宁波住宅景观设计公司(宁波住宅景观设计公司有哪些)