当前位置:首页 » 编程软件 » 文本链接编译器连接器配置

文本链接编译器连接器配置

发布时间: 2022-11-01 01:10:38

① 易语言无法定位链接器!请检查 tools\link.ini 中的配置是否正确

1、打开易语言工作目录(如果你不知道的话,那就找到易语言的快捷方式图标,然后右键-->属性-->查找文件或打开文件位置)

2、找到一个名为“VC98linker”的文件夹(如果你的易语言目录里面没有就网络下载,然后复制里面就可以了)

3、运行里面的“link.e”源代码,不要修改,直接点运行

4、点击“修改”按钮,提示成功后即可即可!

② 用codeblocks配置运行编译器的“环境”,也就是设置路径时用户变量里没有Path怎么办

IDE的话就不需要输入选项,但是不意味着不需要指明,只是一切都被图形化了,只需要配置就可以了。好了,看看codebloc是如何配置的,当然以实验为例子了。
1. 新建项目
2. 配置编译器和连接器路径

这个search directories 就是头文件所在路径,添加这个路径后就可以在程序里面包含头文件了。

有了头文件还不行,还要把连接器需要连接的库添加进来。否则程序只能编译却不能链接,也就不能生成可执行文件了。
3. 然后,然后就没有然后了。

③ 简述一下编译器和链接器的作用

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”.

其它地方比如“头文件”里的目录设置,亦是如此。不过只要你设置了一处的环境变量,其它地方也就会自动调用你设置的路径下的编译器了。

希望对你有帮助。:)

⑤ 如何在Source Insight文本编辑器里面配置C或者C++编译器

alt+t 组合键,在这里面配置

⑥ 如何配置CSC编译器

1.配置C#命令行编译器:

我的电脑 —〉高级—〉环境变量—〉Path —〉添
加";C:\Windows\Microsoft.NET\Framework\v2.0.50727"(Path的最后一个路径虽版本
的改变而改变)。csc.exe(C#命令行编译器)就放在该目录下。通过csc /?来查看所有参
数。

2.配置其它.NET命令行工具

我的电脑 —〉高级—〉环境变量—〉Path —〉添加";D:\Program
Files\Microsoft Visual Studio 8\SDK\v2.0\Bin"(Path随安装目录的改变而改变,如
果安装在C:\,则为";C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin"

3.通过csc命令行编译器来编译C#文件,以下为一个例子

1)在D盘下新建一个名为test.txt文本文件,输入以下文本后保存为test.cs文件

复制代码 代码如下:

//一个简单的C#应用程序.
using System;
class TestApp
{
public static void Main()
{
Console.WriteLine("Test! 1,2,3");
Console.ReadKey();
}
}

2)运行 —〉cmd —〉D:\ —〉csc D:\test.cs, 编译成功后在D盘下生成test.exe可执行文件
3)输入test.exe,回车,显示结果(Test! 1,2,3)

4.接下来通过引入System.Windows.Forms命名空间来生成Windows Forms程序,test.cs
修改为如下后再次编译

复制代码 代码如下:

//一个简单的C#应用程序.
using System;
//一定要加上下面一行
using System.Windows.Forms;
class TestApp
{
public static void Main()
{
Console.WriteLine("Test! 1,2,3");
MessageBox.Show("Hello...","Application");
Console.ReadKey();
}
}

5.使用csc.exe编译多个源文件

复制代码 代码如下:

//HelloMessage.cs
using System;
using System.Windows.Forms;
class HelloMessage
{
public void Speak()
{
MessageBox.Show("Hello");
}
}
//Test.cs
using System;
class TestApp
{
public static void Main()
{
Console.WriteLine("Testing! 1,2,3");
HelloMessage h = new HelloMessage();
h.Speak();
}
}

参数/out:编译结果的存放位置和名称

复制代码 代码如下:

csc/out:e:\a.exe test.cs HelloMessage.cs

或者编译当前目录下的所有cs文件: csc/out:e:\a *cs

⑦ 易语言静态编译。无法定位链接器!请检查 tools\link.ini 中的配置是否正确来高手教我。

打开tools文件夹里的link.ini配置文本,找到其中一句:ilnker="C:\full\path\link.exe" 把它修改为: ilnker=" 这里是你易语言安装的路径 \VC98linker\bin\link.exe" 如我的配置:ilnker=" F:\程序软件\e\VC98linker\bin\link.exe" , F:\程序软件\e 是我的易语言安装路径。 你是否下载了静态编译VC6连接器,你把vc6链接器解压到易语言安装的目录里就可以了。

⑧ 编译器跟编辑器有什么区别。还有什么是链接器

链接器(Linker)是一个程序,将一个或多个由编译器或汇编器生成的目标文件外加库链接为一个可执行文件。

是软体程序,一般是指用来修改电脑档案的编写软件,但也有人称 PE2、HE4(汉书)……等文书软件为编辑器。常见的编辑器有文本编辑器、网页编辑器、源程序编辑器、图像编辑器,声音编辑器,视频编辑器等。

简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)

⑨ 什么是编译器

编译器

编译器是一种特殊的程序,它可以把以特定编程语言写成的程序变为机器可以运行的机器码。我们把一个程序写好,这时我们利用的环境是文本编辑器。这时我程序把程序称为源程序。在此以后程序员可以运行相应的编译器,通过指定需要编译的文件的名称就可以把相应的源文件(通过一个复杂的过程)转化为机器码了。

[编辑]编译器工作方法
首先编译器进行语法分析,也就是要把那些字符串分离出来。然后进行语义分析,就是把各个由语法分析分析出的语法单元的意义搞清楚。最后生成的是目标文件,我们也称为obj文件。再经过链接器的链接就可以生成最后的可执行代码了。有些时候我们需要把多个文件产生的目标文件进行链接,产生最后的代码。我们把一过程称为交叉链接。

一个现代编译器的主要工作流程如下:

* 源程序(source code)→预处理器(preprocessor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→连接器(链接器,Linker)→可执行程序(executables)

工作原理

编译是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级语言或机器言)。然而,也存在从低级语言到高级语言的编译器,这类编译器中用来从由高级语言生成的低级语言代码重新生成高级语言代码的又被叫做反编译器。也有从一种高级语言生成另一种高级语言的编译器,或者生成一种需要进一步处理的的中间代码的编译器(又叫级联)。

典型的编译器输出是由包含入口点的名字和地址以及外部调用(到不在这个目标文件中的函数调用)的机器代码所组成的目标文件。一组目标文件,不必是同一编译器产生,但使用的编译器必需采用同样的输出格式,可以链接在一起并生成可以由用户直接执行的可执行程序。

编译器种类

编译器可以生成用来在与编译器本身所在的计算机和操作系统(平台)相同的环境下运行的目标代码,这种编译器又叫做“本地”编译器。另外,编译器也可以生成用来在其它平台上运行的目标代码,这种编译器又叫做交叉编译器。交叉编译器在生成新的硬件平台时非常有用。“源码到源码编译器”是指用一种高级语言作为输入,输出也是高级语言的编译器。例如: 自动并行化编译器经常采用一种高级语言作为输入,转换其中的代码,并用并行代码注释对它进行注释(如OpenMP)或者用语言构造进行注释(如FORTRAN的DOALL指令)。

预处理器(preprocessor)

作用是通过代入预定义等程序段将源程序补充完整。

编译器前端(frontend)

前端主要负责解析(parse)输入的源程序,由词法分析器和语法分析器协同工作。词法分析器负责把源程序中的‘单词’(Token)找出来,语法分析器把这些分散的单词按预先定义好的语法组装成有意义的表达式,语句 ,函数等等。 例如“a = b + c;”前端词法分析器看到的是“a, =, b , +, c;”,语法分析器按定义的语法,先把他们组装成表达式“b + c”,再组装成“a = b + c”的语句。 前端还负责语义(semantic checking)的检查,例如检测参与运算的变量是否是同一类型的,简单的错误处理。最终的结果常常是一个抽象的语法树(abstract syntax tree,或 AST),这样后端可以在此基础上进一步优化,处理。

编译器后端(backend)

编译器后端主要负责分析,优化中间代码(Intermediate representation)以及生成机器代码(Code Generation)。

一般说来所有的编译器分析,优化,变型都可以分成两大类: 函数内(intraproceral)还是函数之间(interproceral)进行。很明显,函数间的分析,优化更准确,但需要更长的时间来完成。

编译器分析(compiler analysis)的对象是前端生成并传递过来的中间代码,现代的优化型编译器(optimizing compiler)常常用好几种层次的中间代码来表示程序,高层的中间代码(high level IR)接近输入的源程序的格式,与输入语言相关(language dependent),包含更多的全局性的信息,和源程序的结构;中层的中间代码(middle level IR)与输入语言无关,低层的中间代码(Low level IR)与机器语言类似。 不同的分析,优化发生在最适合的那一层中间代码上。

常见的编译分析有函数调用树(call tree),控制流程图(Control flow graph),以及在此基础上的变量定义-使用,使用-定义链(define-use/use-define or u-d/d-u chain),变量别名分析(alias analysis),指针分析(pointer analysis),数据依赖分析(data dependence analysis)等等。

上述的程序分析结果是编译器优化(compiler optimization)和程序变形(compiler transformation)的前提条件。常见的优化和变新有:函数内嵌(inlining),无用代码删除(Dead code elimination),标准化循环结构(loop normalization),循环体展开(loop unrolling),循环体合并,分裂(loop fusion,loop fission),数组填充(array padding),等等。优化和变形的目的是减少代码的长度,提高内存(memory),缓存(cache)的使用率,减少读写磁盘,访问网络数据的频率。更高级的优化甚至可以把序列化的代码(serial code)变成并行运算,多线程的代码(parallelized,multi-threaded code)。

机器代码的生成是优化变型后的中间代码转换成机器指令的过程。现代编译器主要采用生成汇编代码(assembly code)的策略,而不直接生成二进制的目标代码(binary object code)。即使在代码生成阶段,高级编译器仍然要做很多分析,优化,变形的工作。例如如何分配寄存器(register allocatioin),如何选择合适的机器指令(instruction selection),如何合并几句代码成一句等等。

热点内容
win7取消加密 发布:2025-05-15 23:26:37 浏览:470
不用internet打开ftp 发布:2025-05-15 23:06:00 浏览:153
sql字符串取数字 发布:2025-05-15 22:57:45 浏览:124
推荐编程课 发布:2025-05-15 22:34:12 浏览:618
表拒绝访问 发布:2025-05-15 22:29:37 浏览:978
电脑怎样解压文件 发布:2025-05-15 22:25:32 浏览:439
dns服务器怎么看 发布:2025-05-15 22:17:27 浏览:151
3dm的压缩包 发布:2025-05-15 22:09:23 浏览:662
和存储字长 发布:2025-05-15 21:54:09 浏览:515
用什么写c语言 发布:2025-05-15 21:35:56 浏览:418