首页 理论教育 C++编译和链接的步骤及代码可移植性

C++编译和链接的步骤及代码可移植性

时间:2023-10-25 理论教育 版权反馈
【摘要】:C++编译器对大写字母和小写字母是有区别的。在编译过程中,编译器首先要检查源程序中的每一条语句是否存在语法错误,一旦发现错误,会提示错误的位置和错误类型信息。预处理之后的结果被称为被编译单位。若程序运行在个人计算机上,则必须在个人计算机上进行编译和链接。但符合ISOC++标准的源代码可以在不同机器上编译和链接,这种情况称为代码可移植。

C++编译和链接的步骤及代码可移植性

程序员使用任一编辑软件将编写好的C++程序输入计算机,并以文本文件形式保存在计算机的硬盘上。编辑的结果是建立C++源程序文件。C++程序一般使用小写英文字母,常量和其他用途的符号可用大写字母。C++编译器对大写字母和小写字母是有区别的。C++语言的关键字必须是小写。

1.程序编译

程序编译是指将编辑好的源文件翻译成二进制目标代码的过程。编译过程是使用C语言提供的编译程序完成的。在不同操作系统下,各种编译器的使用命令不完全相同,使用时应注意计算机环境。在编译过程中,编译器首先要检查源程序中的每一条语句是否存在语法错误,一旦发现错误,会提示错误的位置和错误类型信息。程序员需要再次调用编辑器进行查错修改,之后再编译,直至排除所有语法和语义错误。正确的源程序文件经过编译后在硬盘上生成目标文件。

C/C++程序需要经过多个步骤才能生成。除了需要定义问题需求、设计并在计算机上输入代码外,必须通过计算机生成一个可执行文件。源代码包含了指挥计算机运行的C/C++语句。

编译器是一个计算机程序,读入代码后,如果源代码“语法正确”,将把该程序生成机器码。用户将一个源文件提交给编译器后,首先进行的是该文件的预处理,即完成宏处理,并按照#include指令引进所有头文件。预处理之后的结果被称为被编译单位。这种编译单位才是编译器真正的工作对象,即C++语言规则所描述的对象。

2.程序的链接

程序经过编译产生的目标文件是可重定位的程序模块,不能直接运行。(www.xing528.com)

链接程序把目标文件和其他分别进行编译生成的目标程序模块及系统提供的标准库函数链接在一起,生成可以运行的可执行文件。

链接过程使用C++语言提供的链接程序完成,链接器把机器码和函数库代码连接起来,生成一个可执行文件。生成的可执行文件存放在计算机硬盘中。

若程序运行在个人计算机上,则必须在个人计算机上进行编译和链接。但符合ISOC++标准的源代码可以在不同机器上编译和链接,这种情况称为代码可移植。标准化的语言应该是可移植语言。

在所有编译单位中,对所有函数、类、模板、变量、命名空间、枚举和枚举符的名称使用都必须保持一致,除非被显式地描述为局部的东西。所有名称空间、类、函数等都应该在它们出现的各编译单位中有适当的声明,且声明都应该一致地引用同一个实体。

如果一个名字可以在与其定义所在的编译单位不同的地方使用,即被称为具有外部链接;如果某个名字只能在其定义所在的编译单位内部使用,即被称为具有内部链接。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈