Ⅰ 如何实现 C 语言编译器
汇编编译器:把汇编语言源程序转换为机器语言的程序,汇编编译器也可以生成源代码列表文件,其中包括行号,内存地址,源代码语句,程序中使用的符号及变量,交叉引用列表.
在Windows/Dos 下可用的汇编编译器有Microsoft宏汇编编译器MASM,Borland Turbo Assember(TASM)和The NetWide Assembler(NASM),其中NASM是跨平台的编译器可用于Windows/Dos/linux下.他们的语法相近,都是Intel语法风格. 在Linux下可用的汇编编译器有NASM,gas.NASM和gas的语法风格相去甚远,NASM使用的是Intel 语法风格的汇编语法,而gas使用的是AT&T的汇编语法风格.
Ⅱ window内自带的C语言编译器怎么用
1、首先,输入【#include】。
注意事项:
尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
Ⅲ 如何用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!"了
Ⅳ 编译器有什么用
简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器(Linker) → 可执行程序 (executables)
高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。源代码一般为高级语言 (High-level language), 如Pascal、C、C++、Java、汉语编程等或汇编语言,而目标则是机器语言的目标代码(Object code),有时也称作机器代码(Machine code)。
对于C#、VB等高级语言而言,此时编译器完成的功能是把源码(SourceCode)编译成通用中间语言(MSIL/CIL)的字节码(ByteCode)。最后运行的时候通过通用语言运行库的转换,编程最终可以被CPU直接计算的机器码(NativeCode)。
Ⅳ 什么是c编译器有什么用,可以用它来写C语言吗
所谓c语言编译器,就是把编程得到的文件,比如.c,.h的文件,进行读取,并对内容进行分析,按照c语言的规则,将其转换成系统可以执行的二进制文件。
其本质在于对文件的读入,分析,及处理。这些操作,c语言都是可以实现的。
所以用c语言来做c语言的编译器是完全可行的。
但是,历史上的第一个c语言编译器,肯定不是c语言写的,因为在没有编译器时,无法把c语言转换成可执行文件。
只要有了第一版其它语言的编译器,就可以用c语言写编译器了。
事实上,目前大多数的c语言编译器,都是用c语言写的。
Ⅵ c语言编译器怎么看结果啊
1、要点两次按钮,第一次是”编译“按钮,看有没有提示出错,提示没出错,才点“运行”按钮,出错要先改对了才能运行,点”运行“按钮。
2、编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)。高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。源代码一般为高级语言 (High-level language), 如Pascal、C、C++、Java、汉语编程等或汇编语言,而目标则是机器语言的目标代码(Object code),有时也称作机器代码(Machine code)。
Ⅶ 汇编语言编译器的TASM的用法
TASM是Borland公司推出的汇编编译器,也是一种使用很广泛的编译器,和MASM相比,TASM的升级没有这么频繁。TASM早在1.0版本就有了对80386处理器指令的完全支持(MASM要到5.0版本才支持80386指令),1989年推出的1.01版本修正了1.0版的一些错误;早期的版本还有TASM 3.0和TASM 4.0,其中4.0版是TASM系列编译器编写DOS程序使用最广泛的版本。
到目前为止,TASM的最后一个版本是5.0版,这个版本支持Win32编程,并单独为Win32编程附带有一整套的32位程序:32位的编译器TASM32.EXE、链接器TLINK32.EXE和资源编译器BRC32.EXE。与这些32位程序对应的16位工具在软件包中依然存在,文件名为TASM.EXE,TLINK.EXE和BRC.EXE等。
TASM 5.0命令行的使用方法是:
TASM32 [选项] 源文件名[,[目标文件名],[列表文件名],[索引文件名]][;]
在Win32编程时TASM的常用选项如下表所示。
选 项
简 介
/ml,/mx,/mu
对大小写是否敏感:ml=全部敏感,mx=全局变量大小写敏感,mu=不敏感,Win32编程中必须用ml选项
/m#
允许第#次编译扫描时可以向前引用,一般使用/m2
/i路径
设定include文字所在的路径
/l,/la
lst文件的格式:/l为正常格式,/la为扩充格式
/zi,/zd,/zn
符号调试信息的控制:/zi为全部,/zd为仅有行号,/zn为不产生调试信息
TASM和MASM之间的导入库和目标文件等不能通用,程序员无法用Microsoft的链接器来链接TASM产生的obj文件,反之亦然,这是因为TASM的库文件和obj文件一直是OMF格式,与Microsoft使用的COFF格式不兼容
Ⅷ c语言编辑器怎么用手机版
如何在手机上编写c程序?
ZZ8524次浏览2020.10.24
如何在手机上编写c程序?今天小编为大家讲解一下。
开启分步阅读模式
操作方法
01
打开手机,找到应用商店,点击并进入,如图所示。
02
进入之后,搜索“C语言编译器”,将其下载安装到手机上面,如图所示。
03
下载好之后,打开“C语言编译器”,如图所示。
04
进入之后,即可对C语言进行编译,如图所示。
特别提示
以上纯属个人编写,请勿转载抄袭。
本页搜狗指南内容仅供参考,请您根据自身实际情况谨慎操作。尤其涉及您或第三方利益等事项,请咨询专业人士处理。
0无帮助
查看全文
大家还在搜
plc编程必背50个程序
初学编程100个代码大全
手机编写电子文档
手机编写合同软件
编写c程序的软件
手机编写c语言的软件
c程序设计实验报告
c语言流程图生成器旁悔手机版
c语言编程器手机版
c程序设计知识点
c程序设计教材电子版
手机编写文档的软件
安卓c语言编译器
c程序设计电子书
手机编写电子表格
如何编写c语言程序
手机上怎么编程c语言
编写c语言的工具软件
如何在手机上编程并运行
c语言必背18个经典程序
手机如何编写c语言
手机怎么写c语言代码
编辑c程序是指
怎样编写c语言程序
创建c程序的步骤
c程序实例
c语言编译器手机版
c程序设计语言电子版
怎么在手机上编写c语言
编写程序新手教程
手机上怎么编程c语言
编写c语言的工具软件
如何在手机上编程并运行
c语言必背18个经典程序
手机如何编写c语言
手机怎么写c语言代码
编辑c程序是指
怎样编写c语言程序
创建c程序的步骤
c程序实信启耐例
c语言编译器手机版
c程序设计语言电子版
操作方法
01 / 04
操作方法
点击目录可快速跳转至页面对应位置
01打开手机,找到应用商店,点击并进入,滑春如图所示。
02进入之后,搜索“C语言编译器”,将其下载安装到手机上面,如图所示。
03下载好之后,打开“C语言编译器”,如图所示。
04进入之后,即可对C语言进行编译,如图所示。
指到就不难 · © SOGOU.COM 2023
Ⅸ 我下载了一个c语言编译器,编译完成后怎样运行呢
首先 你要保证编译器编译的时候没有出错
如果确定没有出错 那么 一般有两种运行方式
一种是 你的编译器自带运行按钮,那么可以通过编译器的图形界面运行
点击按钮 或者使用快捷键。
如果没有,那么可以找你编译出来的exe文件
到命令行手动运行。
PS 带参数的可执行文件 必须命令行运行。