Ⅰ 编译器跟编辑器有什么区别。还有什么是链接器
链接器(Linker)是一个程序,将一个或多个由编译器或汇编器生成的目标文件外加库链接为一个可执行文件。
是软体程序,一般是指用来修改电脑档案的编写软件,但也有人称 PE2、HE4(汉书)……等文书软件为编辑器。常见的编辑器有文本编辑器、网页编辑器、源程序编辑器、图像编辑器,声音编辑器,视频编辑器等。
简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)
Ⅱ 用C语言编的程序,要生成可执行文件的时候,要编译、链接,编译是什么意思啊链接是什么意思编译和链接
编译就是把C代码转换成CPU可执行的机器指令,每个.c文件生成一个.obj文件。
链接就是把生成的(多个) .obj 文件及用到的库文件(.lib)一起组合生成可执行文件(.exe)。
Ⅲ 编译器的功能是什么
1、编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器(Linker) → 可执行程序 (executables)。
2、工作方法:
1)、首先编译器进行语法分析,也就是要把那些字符串分离出来。
2)、然后进行语义分析,就是把各个由语法分析分析出的语法单元的意义搞清楚。
3)、最后生成的是目标文件,也称为obj文件。
4)、再经过链接器的链接就可以生成最后的EXE文件了。
5)、有些时候需要把多个文件产生的目标文件进行链接,产生最后的代码。这一过程称为交叉链接。
Ⅳ 简述一下编译器和链接器的作用
1、编译器:
编译器对源文件进行编译,就是把源文件中的文本形式存在的源代码翻译成机器语言形式的目标文件的过程,在这个过程中,编译器会进行一系列的语法检查。如果编译通过,就会把对应的CPP转换成OBJ文件。
2、链接器:
当链接器进行链接的时候,首先决定各个目标文件在最终可执行文件里的位置。然后访问所有目标文件的地址重定义表,对其中记录的地址进行重定向(加上一个偏移量,即该编译单元在可执行文件上的起始地址)。
然后遍历所有目标文件的未解决符号表,并且在所有的导出符号表里查找匹配的符号,并在未解决符号表中所记录的位置上填写实现地址。最后把所有的目标文件的内容写在各自的位置上,再作一些另的工作,就生成一个可执行文件。
Ⅳ Visual Unit 设定编译器和连接器
预先安装好VC,比如我安装的是Microsoft visual studio 2005.
再来,Visual Unit 4.0 安装,完成后,重新打开进入演示版。
在窗口的主界面,点击菜单栏“工程”-》“打开示例工程”,选择一个自己想打开的项目。
点击菜单栏“工具”-》“设定”。里面便有“编译器”和“编辑器”。
点击“编译器”,“名称”项,选择你安装VC对应的Visual C++ 版本,比如"Visual C++ 2005". 编译器和链接器,同样道理,选择之前你安装VC的根目录下,对应的编译器和链接器。比如:
“D:\Program files\Microsoft Visual Studio 2005\VC\bin\cl.exe”
“D:\Program files\Microsoft Visual Studio 2005\VC\bin\link.exe”。
这样便可以了。
如果项目执行测试,还是有类似编译器或者链接器的问题,请继续看以下注意事项,检查下工程属性是否一致:
待工程打开加载后,再次点击菜单栏“工程”-》“工程属性”,
在“常规”界面,选择你需要的测试代码编译器,比如我装的VC2005,那么我就选择Visual C++ 2005.
点击第五个tab "链接"。点击“环境变量”。在变量名下拉列表中,点击您安装VC的版本对应的dir,比如“vc2005_dir”. 在下面的“值”一栏,点击“浏览”找到VC对应的根目录。比如“D:/Program files/Microsoft Visual Studio 2005”。“OK”确认。再点击当前小窗口的“保存”。关闭小窗口。
退回到“工程属性”窗口,检查“库文件搜索目录”,是否是自己设定的vc2005_dir为头的目录,比如:“$(vc2005_dir)/vc/lib”.
其它地方比如“头文件”里的目录设置,亦是如此。不过只要你设置了一处的环境变量,其它地方也就会自动调用你设置的路径下的编译器了。
希望对你有帮助。:)