c语言在线编译运行(c语言编译器如何运行)

:暂无数据 2026-08-23 03:40:02 :0

c语言在线编译运行(c语言编译器如何运行)

各位老铁们好,相信很多人对c语言在线编译运行都不是特别的了解,因此呢,今天就来为大家分享下关于c语言在线编译运行以及c语言编译器如何运行的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

本文目录

c语言编译器如何运行

编译共分为四个阶段:预处理阶段、编译阶段、汇编阶段、链接阶段。

1、预处理阶段:

主要工作是将头文件插入到所写的代码中,生成扩展名为“.i”的文件替换原来的扩展名为“.c”的文件,但是原来的文件仍然保留,只是执行过程中的实际文件发生了改变。(这里所说的替换并不是指原来的文件被删除)

2、汇编阶段:

插入汇编语言程序,将代码翻译成汇编语言。编译器首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,编译器把代码翻译成汇编语言,同时将扩展名为“.i”的文件翻译成扩展名为“.s”的文件。

3、编译阶段:

将汇编语言翻译成机器语言指令,并将指令打包封存成可重定位目标程序的格式,将扩展名为“.s”的文件翻译成扩展名为“.o”的二进制文件。

4、链接阶段:

在示例代码中,改代码文件调用了标准库中printf函数。而printf函数的实际存储位置是一个单独编译的目标文件(编译的结果也是扩展名为“.o”的文件),所以此时主函数调用的时候,需要将该文件(即printf函数所在的编译文件)与hello world文件整合到一起,此时链接器就可以大显神通了,将两个文件合并后生成一个可执行目标文件。

如何用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语言的编译和运行按什么键

编译F9 运行Ctrl+F9
不同的编译器命令快捷键略有不同。
下面是Visual Stdio的命令快捷键列表:
CTRL + SHIFT + B
生成解决方案

CTRL + F7
生成编译

CTRL + O
打开文件

CTRL + SHIFT + O
打开项目

CTRL + SHIFT + C
显示类视图窗口

F4
显示属性窗口

SHIFT + F4
显示项目属性窗口

CTRL + SHIFT + E
显示资源视图

F12
转到定义

CTRL + F12
转到声明

CTRL + ALT + J
对象浏览

CTRL + ALT + F1
帮助目录

CTRL + F1
动态帮助

F1
帮助

SHIFT + F1
当前窗口帮助

CTRL + ALT + F3
帮助-搜索

SHIFT + ALT + ENTER
全屏显示

CTRL + -
向后定位

CTRL + SHIFT + -
向前定位

CTRL + F4
关闭文档窗口

CTRL + PAGE DOWN
光标定位到窗口上方

CTRL + PAGE UP
光标定位到窗口下方

CTRL + F6
CTRL + TAB
下一个文档窗口

CTRL + SHIFT + F6
CTRL + SHIFT + TAB
上一个文档窗口

ALT + F6
下一个面板窗口

CTRL + K, CTRL + L
取消remark

CTRL + K, CTRL + C
注释选择的代码

CTRL + K, CTRL + U
取消对选择代码的注释

CTRL + M, CTRL + O
折叠代码定义

CTRL + M, CTRL + L
展开代码定义

CTRL + DELETE
删除至词尾

CTRL + BACKSPACE
删除至词头

SHIFT + TAB
取消制表符

CTRL + U
转小写

CTRL + SHIFT + U
转大写

CTRL + SHIFT + END
选择至文档末尾

CTRL + SHIFT + HOME
选择至文档末尾开始

SHIFT + END
选择至行尾

SHIFT + HOME
选择至行开始处

SHIFT + ALT + END
垂直选择到最后尾

SHIFT + ALT + HOME
垂直选择到最前面

CTRL + A
全选

CTRL + W
选择当前单词

CTRL + SHIFT + PAGE UP
选择至本页前面

CTRL + SHIFT + PAGE DOWN
选择至本页后面

CTRL + END
文档定位到最后

CTRL + HOME
文档定位到最前

CTRL + G
转到…

CTRL + K, CTRL + P
上一个标签

CTRL + K, CTRL + N
下一个标签

ALT + F10
调试-ApplyCodeChanges

CTRL + ALT+ Break
停止调试

CTRL + SHIFT + F9
取消所有断点

CTRL + F9
允许中断

CTRL + SHIFT + F5
调试-重新开始

F5
运行调试

CTRL + F5
运行不调试

F10
跨过程序执行

F11
单步逐句执行

CTRL + J
列出成员

CTRL + PAGE DOWN
下一个视图

CTRL + B
格式-粗体

CTRL + SHIFT + T
格式-文字缩进

C语言如何在VC++上编译运行

直接当c++编译就行了吧
我昨天就那么编译的
在build下面有个compile就编译
然后再从build那个菜单中找一个前面有!的
就可以运行了
希望我说的没有什么错误
3q
我看了一下,你的是中文的
那就是工具左边的那个按钮下拉菜单中的编译和运行就行了

C语言如何用dos命令编译运行

  在控制台编译运行一个C程序,在windows上的c语言编译器为cl.exe,在linux平台上的c语言编译器是gcc。

  在命令提示符中,执行cl test.c(test.c是c语言源码文件)。下图是用cl编译器编译main.cxx的谁的,并且执行生成的程序main.exe。

C语言编写好代码后,怎么编译,最后生成可执行文件

材料/工具:vc6.0  

1、打开c语言工具,在工具中写入程序的源代码。

2、完成以后,点击编译后点击组建,然后点击执行。  

3、执行完程序,点击回车按钮选项。

4、点击文件另存为把文件存到你能够找到的文件夹中。 

5、打开保存在桌面的文件夹,里面有有一个 Bebug 的文件夹。

6、打开 Bebug 的文件夹,有一个以.exe为后缀名的文件,就是所需要的可执行文件,将其拷贝出,就可以单独执行,也就是一个小软件生成了

c语言命令行程序如何在DOS下编译运行

1、打开开始,运行cmd,进入dos界面。

2、分别运行java,和javac,检测jdk是否已经配置好,如果没有配置好需先配置好JDK。

3、新建一个文件夹,在文件夹下,新建一个文本文档,以.java为文件格式,选择打开方式,用记事本打开。

4、用记事本打开之后,java源程序,完成之后,保存。

5、在dos 运行javac 将桌面的java程序 拖到到javac命令后方,在桌面生成.class文件。

6、用命令语句将当前目录,跳转到新建的文件夹下,在dos下运行java 命令,输出java程序结果。

c语言中的编辑,编译,连接,运行分别是什么意思

1、:编写代码,制作C语言的源文件。

2、编译:是由编译程序将C语言源文件转换成二进制中间文件,对文件内部的语法语义做处理,如果编译出错,无法进行后续动作。

3、链接:将编译中生成的中间文件组合成二进制可执知行文件,这一步会对文件之间的关联做检查,如果出错,将不会生成可执行文件,也就无法执行。

4、执行:运行可执行文件,这一步道是编写代码的最终目的。

扩展资料:

DOS命令通常分为三类:内部命令、外部命令和批处理命令。

1、内部命令:

其包含在命令解释程序COMMAND.COM中,一旦启动DOS,这些命令就被调入内存,只要在DOS系统提示符下输入这些命令,就可立即执行。

2、外部命令:

其以文件的形式存储在系统盘上,所带扩展名为COM和EXE。DOS启动时,它们并没有被调入内存,执行前必须从系统盘读进内存。因此输入外部命令时,要了解该命令是否在当前盘上,不然DOS无法找到它们。

3、批处理命令:

实际上是个文件,该文件包含多条命令,当用户键入批处理文件名时,DOS将顺序执行其中的各条命令。注意,批处理命令必须用“.BAT”作为扩展名。

C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单。

当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则就会显得十分重要。

参考资料:

百度百科-运行命令

百度百科-C语言

OK,关于c语言在线编译运行和c语言编译器如何运行的内容到此结束了,希望对大家有所帮助。

c语言在线编译运行(c语言编译器如何运行)

本文编辑:admin

更多文章:


dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)

dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)

本篇文章给大家谈谈dropdownlist 绑定,以及DropDownList 绑定所有项 并 显示指定项对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年10月11日 08:50

协方差计算公式(协方差的计算公式)

协方差计算公式(协方差的计算公式)

这篇文章给大家聊聊关于协方差计算公式,以及协方差的计算公式对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 08:10

易语言网页api接口怎么调用(易语言,怎么读取网页json的api)

易语言网页api接口怎么调用(易语言,怎么读取网页json的api)

本篇文章给大家谈谈易语言网页api接口怎么调用,以及易语言,怎么读取网页json的api对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月11日 08:00

majority of(the majority of 和 a majority of的区别以及用法例句)

majority of(the majority of 和 a majority of的区别以及用法例句)

这篇文章给大家聊聊关于majority of,以及the majority of 和 a majority of的区别以及用法例句对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 07:40

汉字机内码查询表(1个汉字的机内码是几位谢谢)

汉字机内码查询表(1个汉字的机内码是几位谢谢)

大家好,关于汉字机内码查询表很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于1个汉字的机内码是几位谢谢的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年10月11日 07:20

promote翻译(英语翻译倡导怎么说)

promote翻译(英语翻译倡导怎么说)

其实promote翻译的问题并不复杂,但是又很多的朋友都不太了解英语翻译倡导怎么说,因此呢,今天小编就来为大家分享promote翻译的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 06:30

用手机如何导航?开车用手机导航哪个软件最好

用手机如何导航?开车用手机导航哪个软件最好

今天给各位分享用手机如何导航的知识,其中也会对用手机如何导航进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 06:20

多线程技术有什么用(多线程有什么作用)

多线程技术有什么用(多线程有什么作用)

其实多线程技术有什么用的问题并不复杂,但是又很多的朋友都不太了解多线程有什么作用,因此呢,今天小编就来为大家分享多线程技术有什么用的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 05:40

another time(another time和other time的区别)

another time(another time和other time的区别)

大家好,another time相信很多的网友都不是很明白,包括another time和other time的区别也是一样,不过没有关系,接下来就来为大家分享关于another time和another time和other time的区

2026年10月11日 05:00

java开发工具包jdk(JDK是什么意思)

java开发工具包jdk(JDK是什么意思)

其实java开发工具包jdk的问题并不复杂,但是又很多的朋友都不太了解JDK是什么意思,因此呢,今天小编就来为大家分享java开发工具包jdk的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 04:50

最近更新

repercussions(都是余波,repercussions和aftermath有什么区别啊)
2026-10-11 09:00:05 浏览:0
dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)
2026-10-11 08:50:04 浏览:0
majority of(the majority of 和 a majority of的区别以及用法例句)
2026-10-11 07:40:02 浏览:0
热门文章

标签列表