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

本文目录
- c语言编译器如何运行
- 如何用java调用c语言编译器实现在线编译c语
- C语言的编译和运行按什么键
- C语言如何在VC++上编译运行
- C语言如何用dos命令编译运行
- C语言编写好代码后,怎么编译,最后生成可执行文件
- c语言命令行程序如何在DOS下编译运行
- 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语言

更多文章:
dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)
2026年10月11日 08:50
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40
another time(another time和other time的区别)
2026年10月11日 05:00






