当前位置:首页 » 办公资讯 » 怎样对源文件进行编译链接

怎样对源文件进行编译链接

发布时间: 2023-05-05 05:48:08

‘壹’ 用VS编译和C++源文件的时候,源文件和库文件是如何链接到源文件的具体细节

因为我是学习计算机软件专业的,故可以给你讲一下大概意思,我也不敢保证我讲得都是正确的。个人讲解仅供参考。这个是需要学习《计算机编译原理》这门课程的。而且《计算机编译原理》这门课程在软件专业中几乎是最抽象的、难于理解的。
首先关于 Visual Studio编译器(或者是别的 C/C++编译器)是如何将用户亲自编写的源程序经过若干步骤之后,最终变成计算机可执行的二进制代码程序?这里面经过了如下步骤:
(1)、词法分析/语法分析。也就是说当编译器对用户编写的源程序进行编译时,首先检查你的词法(或者是语法)是否正确,这是第一步(这里以 C 语言为例,假如将定义一个整型变量 n 的语句 int n ; 误写成了:intt n ; 属于语法错误)。如果这一步都没有通过编译器的检查的话,那么绝对不会进入第二步。继续返回编辑状态进行语法检查。这种错误是最容易检查的。
(2)、语义分析。这类错误就要比(1)困难得多。这类错误举例如下(这类错误编译器只是会给出一个警告信息,但是编译器是会放过这类错误的。故需要编程人员具有较丰富的编程经验)
void main( )
{
int num ; /* 定义一个整型变量 num */
scanf("%d", &num ) ; /* 从键盘上输入一个整数 */
if( num == 10 ) /* 在这个语句中,如果将逻辑判断等于号 ==,误写为数值等于 =(即:if( num = 10 )),那么该程序的执行结果始终输出:Correct。因为该逻辑表达式 if( 10 ) 的真值始终为 1。 */
printf( "Correct !\n" ) ; /* 实际上程序的本意是:如果输入的数值等于 10,则输出:Correct ! */
else /* 如果输入的数值不等于 10 的话,则输出:Error ! */
printf( "Error !\n" ) ;
}
(3)、在(1)和(2)的基础上进行中间代码生成(例如:在Linux 系统下面生成的 *.o 文件、或者是在 WINDOWS 系统下面生成的 *.obj 文件),这类文件还不是最终的可执行文件。
在此过程中,会应用到各种符号表,以便处理用户程序中使用的各种常量、变量、以及各种函数,等等。
(4)、在前三个阶段的基础上,最终 VS 编译器再将中间代码(*.obj 文件)和其本身提供的库文件(*.LIB)进行链接,最终产生可执行程序(Linux 系统使用的编译器是:gcc,Linux 系统下面的尘物配可执行文件名可以任意,WINDOWS 系统下派指蚂山面的可执行文件名为:*.EXE 文件)。
到此为止,一个用户编写的源程序,经过上面若干步骤之后,最终产生了可执行程序,此时就可以在机器上的相应的操作系统上执行了。

‘贰’ C语言如何将两个源程序文件连接在一起编译

  1. 请使郑衡用预编译指令 #include。

  2. #include放在代码文件头,用于返念告诉编译器,文件中包含的头文件,属于预处理文件的一部分 。喊世做
    语法为:
    #include <iostream.h> (这句是程序编译时搜索系统目录文件)
    #include “HName.h" (这句是程序编译时搜索当前项目的文件)

‘叁’ c语言代码怎么弄个链接点击就运行

开发一个c语言程序要经过哪四个步骤

开发一个C语言程序需要经过的四个步骤:编辑、编译、连接、运行。

C语言程序可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译、连接成目标二进制文件之后即可运行。

1、预处理:输入源程序并保存(.C文件)。

2、编译:将源程序翻译为目标文件(.OBJ文件)。

3、链接:将目标文件生成可执行文件(.EXE文件)。

4、运行:执行.EXE文件,得到运行结果。

(3)怎样对源文件进行编译链接扩展阅读:

C语言代码变为程序的几个阶段:

1、首先是源代码文件test.c和相关的头文件,如stdio.h等被预处理器cpp预处理成一个.i文件。经过预编译后的.i文件不包含任何宏定义,因为所有的宏已经被展开,并且包含的文件也已经被插入到.i文件中。

2、编译过程就是把预处理完的文件进行一系列的词法分析、语法分析、语义分析以及优化后产生相应的汇编代码文件,这个过程往往是我们所说的整个程序的构建的核心部分碧贺,也是最复杂的部分之一。

3、汇编器不直接输出可执行文件而是输出一个目标文件,汇编器可以调用ld产生一个能够运行的可执行程序。即需要将一大堆文件链接起来才可以得到“a.out”,即最终的可执行文件。

4、在链接过程中,对其他定义在目标文件中的函数调用的指令需要被重新调整,对实用其他定义在其他目标文件的变量来说,也存在同样问题。

参考资料来源:网络-c语言

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

编辑就是对代码的编写,按照c语言规则,编写完成一定功能的代码。

编译就是对代码进行编译,让代码从高级语言编译成可以让电脑识别运算的机器码。

连接就是对代码各个函数等进行,连接

运行就是运行所编辑代码组成的程序。

编辑,编译和运行C程序需要什么条件?

c程序的编辑,编译,链派脊接和运行

编辑

对于C语言来说,任何文本编辑器都是可以的;windows自带的notepad,linux常用VIM都可以

编译,链接

虽然这是两个步骤,但通常是同一套tool,例如开源的gcc系列,微软的visual C++都有自己的编译链接工具。

运行

一旦编译链接完成通常就可以在目标机器上运行了;如果使用了动态库,还需要运行环境里有对应的库文件才行。

c语言编辑编译悔羡派链接运行,c语言如何编译运行

C语言编辑编译连接的作用是什么

C语言编辑的作用是检查语法,制作C语言的源文件和头文件,生成汇编代码。

C语言编辑的作用是将汇编代码转换机器码。在这一步中,会对文件内部的语法语义做处理,如果编译出错,无法进行后续动作。

C语言链接的作用是将机器码链接到一起生成可执行程序。这一步会对文件之间的关联做检查,如果出错,将不会生成可执行程序,也就无法执行。

(3)怎样对源文件进行编译链接扩展阅读:

C语言链接时,将源文件中用到的库函数与汇编生成的目标文件.o合并生成可执行文件。该可执行文件会变大很多,一般是调用自己电脑上的静态库。

静态库和应用程序编译在一起,在任何情况下都能运行,而动态库是动态链接,文件生效时才会调用。很多代码编译通过,链接失败就极有可能在静态库和动态库这出现了纰漏,要视情况解决。缺少相关所需文件,就会链接报错。这个时候就要检查下本地的链接库是不是缺损。

C语言文件的编译与执行的四个阶段并分别描述

开发C程序有四个步骤:编辑、编译、连接和运行。

任何一个体系结构处理器上都可以使用C语言程序,只要该体系结构处理器有相应的C语言编译器和库,那么C源代码就可以编译并连接到目标二进制文件上运行。

1、预处理:导入源程序并保存(C文件)。

2、编译:将源程序转换为目标文件(Obj文件)。

3、链接:将目标文件生成为可执行文件(EXE文件)。

4、运行:执行,获取运行结果的EXE文件。

(3)怎样对源文件进行编译链接扩展阅读:

将C语言代码分为程序的几个阶段:

1、首先,源代码文件测试。以及相关的头文件,比如stdio。H、由预处理器CPP预处理为.I文件。预编译的。文件不包含任何宏定义,因为所有宏都已展开,并且包含的文件已插入。我归档。

2、编译过程是对预处理文件进行词法分析、语法分析、语义分析和优化,生成相应的汇编代码文件。这个过程往往是整个程序的核心部分,也是最复杂的部分之一。

3、汇编程序不直接输出可执行文件,而是输出目标文件。汇编程序可以调用LD来生成可以运行的可执行程序。也就是说,您需要链接大量的文件才能获得“a.out”,即最终的可执行文件。

4、在链接过程中,需要重新调整其他目标文件中定义的函数调用指令,而其他目标文件中定义的变量也存在同样的问题。

参考资料来源:网络-c语言

热点内容
马路上汽车的噪音在多少分贝 发布:2023-08-31 22:08:23 浏览:1885
应孕棒多少钱一盒 发布:2023-08-31 22:08:21 浏览:1357
标准养老金一年能领多少钱 发布:2023-08-31 22:05:05 浏览:1644
湖北通城接网线多少钱一个月 发布:2023-08-31 21:59:51 浏览:1724
开随车吊车多少钱一个月 发布:2023-08-31 21:55:06 浏览:1486
京东付尾款怎么知道前多少名 发布:2023-08-31 21:52:58 浏览:1809
在学校租铺面一个月要多少钱 发布:2023-08-31 21:52:09 浏览:1947
2寸有多少厘米 发布:2023-08-31 21:50:34 浏览:1590
知道电压如何算一小时多少电 发布:2023-08-31 21:46:20 浏览:1571
金手镯54号圈周长是多少厘米 发布:2023-08-31 21:44:28 浏览:1745