您的位置:

c语言怎么在线编译,C语言在线编译

本文目录一览:

能在网上在线编译C语言,并编译呈现出来的网站是什么?

Ideone

Ideone()是一个在线多语言编程执行器工具,可以在线直接做编译和执行动作,支持包括C++,Java,JavaScript,Perl,PHP,Python和Ruby在内的40多种编程语言.Ideone是一个简易的编程测试工具,虽然不能替代专业版的工具,但是其功能非常全面.,该页面上有不少广告,看的有点不爽.

望采纳~

有问题欢迎继续追问

C语言怎么编译呀?

在本机上搭建IDE开发环境,在IDE中导入编译器,就可以本地编译了。

把代码在本地写好,编译过之后,运行样例没问题后,再上传的网站上,网站上是有编译器的,你选择之后会自动编译。

如何用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语言在线编译

问题很多

第一:函数申明问题,max(x,y);应该放在main() 上面,不然会报 没定义max()错误

第二:函数返回值问题.max()是一个有返回值的函数,在max()前面应该加 返回值类型的条件

第三:文件包含问题.printf 用到了 stdio.h

还有些小细节问题...就不说

具体修改如下:

#include stdio.h

int max(int x,int y)

{

int z;

z=(xy)?x:y;

return z;

}

void main(void)

{

int a,b,c;

scanf("%d%d",a,b);

c=max(a,b);

printf("max=%d\n",c);

}

C语言如何编译

先创建一个工程,选择win32的吧,然后一直下一步直到完成

然后在左边找到你创建的一个和你工程名字一样的文件打开,如果没错的话里面应该是一个main函数示例,把它删,把你的代码粘贴到这个文件,按F5会提示编译,确定后开始编译,如果编译没问题会在编译完成后运行(调试态)

娟猪下班了没有