实验一C 程序的编辑编译连接与运行-文档资料

合集下载

C语言程序设计实验报告——实验1 C程序的运行环境和运行C程序的方法

C语言程序设计实验报告——实验1 C程序的运行环境和运行C程序的方法

凯里学院 C 语言程序设计 实验报告××××× 专业×× 年级×× 班,学号×××××× 姓名××成绩 合作者 实验日期 年 月 日 指导教师 评阅日期 年 月 日实验一 C 程序的运行环境和运行C 程序的方法一、实验目的:(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。

(2)了解在该系统上如何编辑、编译、连接和运行一个C 程序。

(3)通过运行简单的C 程序,初步了解C 程序的特点。

二、实验内容: (1) 检查所用的计算机系统是否已安装了C 编译系统并确定它所在的子目录。

(2) 进人C 的工作环境 (3)熟悉集成环境的界面和有关菜单的使用和方法。

(4)输人并运行一个简单的、正确的程序。

(5)输入并编辑一个有错误的C 程序。

三、实验步骤:(1) 检查所用的计算机系统是否已安装了C 编译系统并确定它所在的子目录。

(2) 进人C 的工作环境(3) 熟悉集成环境的界面和有关菜单的使用和方法。

(4) 输人并运行一个简单的、正确的程序。

在屏幕上输出“This is a C program.”。

(教材第1章例1.1)程序:#include <stdio.h>void main(){printf ("This is a C program.\n");}该程序的作用就是在屏幕上输出这样一句话:“This is a C program.”。

下面编写、编译并运行该程序:程序输出结果为:(5) 输入并编辑一个有错误的C 程序。

求两数和,并将其输出。

(教材第1章中例1.2,故意漏打或错打几个字符)程序:#include <stdio.h>int main ()装订线 装订线{int a,b,suma=123; b=456;sum=a+bprintf ("sum is %d\n", sum);}很明显,有两个语句缺少“;”,语法有错误。

实验一C程序的运行环境和运行C程序的方法实验报告

实验一C程序的运行环境和运行C程序的方法实验报告

实验一C程序的运行环境和运行C程序的方法实验报告实验一:C程序的运行环境和运行C程序的方法一、实验目的1.了解C程序的运行环境和运行C程序的方法;2.掌握在不同操作系统环境下编写和运行C程序的基本步骤;3.加深对C程序运行机制的理解。

二、实验原理C程序是一种用于系统编程的高级编程语言,广泛应用于开发应用程序和操作系统。

在运行C程序之前,我们需要了解C程序的运行环境和运行方法。

1.运行环境:运行C程序的环境可以是不同的操作系统,如Windows、Linux、MacOS等。

每个操作系统都提供了一种特定的环境来运行C程序。

2.运行方法:在不同的操作系统下,运行C程序的方法也有所不同。

- 在Windows操作系统下,可以使用任何支持C编译器的集成开发环境(IDE)来编写和运行C程序。

常用的IDE有Dev-C++、Code::Blocks 等。

- 在Linux操作系统下,可以使用GNU编译器套装(GCC)来编译和运行C程序。

首先需要安装GCC编译器,然后使用命令行工具编写和运行C程序。

- 在MacOS操作系统下,可以使用Xcode开发工具来编写和运行C程序。

Xcode是苹果官方提供的集成开发环境,提供了编译器和调试器等工具。

三、实验步骤1. 在Windows操作系统下运行C程序:- 启动Dev-C++,选择"File"菜单中的"New"选项,创建一个新的C 源文件;-在源文件中编写C程序代码,并保存为以.c为扩展名的文件;2. 在Linux操作系统下运行C程序:- 在终端窗口中使用GCC编译器编译C程序,如gcc -o program program.c,其中program为可执行文件名;- 运行C程序,如./program。

3. 在MacOS操作系统下运行C程序:- 启动Xcode,选择"File"菜单中的"New"选项,创建一个新的C源文件;-在源文件中编写C程序代码,并保存为以.c为扩展名的文件;- 点击Xcode窗口右上角的"Run"按钮,编译并运行C程序。

实验一 C程序的运行环境和运行C程序的方法实验报告

实验一  C程序的运行环境和运行C程序的方法实验报告

实验一C程序的运行环境和运行C程序的方法1.实验目的:(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统(2)了解在该系统上如何编辑,编译、连接和运行一个C程序(3)通过运行简单的C程序,初步了解C源程序的特点2. 实验内容和步骤(1)检查所用的计算机系统是否已安装了C 编译系统并确定它所在的子目录(2)进入所用的集成环境(3)熟悉集成环境的界面和有关菜单的使用方法(4)输入并运行一个简单的、正确的程序输入下面的程序# include<stdio.h>void main(){printf(“This is a c program..\n”);}①下面是屏幕上显示的编译信息。

无错,进行连接。

--------------------Configuration: L1 - Win32 Debug--------------------Compiling...L1.cL1.obj - 0 error(s), 0 warning(s)②连接无错误,使程序运行,观察分析运行结果。

--------------------Configuration: L1 - Win32 Debug--------------------Linking...L1.exe - 0 error(s), 0 warning(s)运行输出结果This is a c program.Press any key to continueThis is a c program.Press any key to continue分析:输入自己编写的源程序,检查程序有无语法错误,可以通过编译来实现,它会自动查出程序的语法错误,如果有错误应该找出原因,并改正过来,再进行编译和连接,仔细分析编译信息,确定没错误就可以运行程序,输入数据。

第一个程序运行的结果是This is a c program.。

符合我们原来设计这个程序的目的,说明这个程序是正确的。

《C语言程序设计》实验报告

《C语言程序设计》实验报告

(此文档为word格式,下载后您可任意编辑修改!)《C语言程序设计》实验报告2012~2013学年第二学期班级姓名学号指导教师实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C++6.0一、实验目的:1.了解在Visual C++6.0环境下如何编辑、编译、连接和运行一个C程序;2.通过运行简单的C程序,初步了解C源程序的特点。

二、预习内容:教材《C语言程序设计教程》第1章。

三、实验内容:1.在Visual C++6.0环境下输入并运行下面的程序:#include<stdio.(){printf("This is a C program.\n");return0;}2.在Visual C++6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。

#include<stdio.(){int a,b,suma=3;b=4;sun=a+b;print("%d+%d=%d\n",a,b,sum);return0;}四、实验结果:1.运行结果(或截图):2.(1)改正后的源程序:(2)运行结果(或截图):五、思考题:1.一个C程序上机的步骤有哪些?答:2.组成C程序的基本单位是函数,一个函数包括哪几个部分?答:成绩指导教师签名实验二实验项目名称:数据类型、运算符和表达式所使用的工具软件及环境:Visual C++6.0一、实验目的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使用方法;3.掌握基本算术运算符及其表达式的使用方法;4.掌握++、--运算符、赋值运算符及其表达式的使用方法。

二、预习内容:教材《C语言程序设计教程》第2章。

三、实验内容:1.在Visual C++6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误。

#include<stdio.(){int2cd=3;floatπ=3.14;char for=′A′;printf("%d,%f,%c\n",2cd,π,for);return0;}2.在Visual C++6.0环境下输入并运行下面的程序,观察分析运行结果。

c语言实验报告 C程序的运行环境和运行一个C程序的方法 实验一

c语言实验报告 C程序的运行环境和运行一个C程序的方法      实验一

数学与软件科学学院实验报告学期:__2011_ 至_2012 第_ 1__ 学期 20 11 年 9 月 8 日课程名称:_C语言程序设计专业:__ 会计学 2008 级_ 8 班实验编号: 01 实验项目: C程序的运行环境和运行一个C程序的方法指导教师:王开端姓名:邓沂学号: 2008070512 实验成绩:___一、实验目的:(1)熟悉所用计算机系统的基本操作方法以及在该系统下安装、编辑、编译、连接和运行一个C语言源程序的基本操作步骤(以Turboc C为基本背景);(2) 学习基本的C语言程序设计与调试环境设置方法;(3) 通过运行简单的C程序,了解C程序的特点。

二、实验内容:(要求至少调试3个以上的简单程序)1.如果系统没有安装TC环境,则安装,否则,跳过此步;2.配置好TC环境,熟悉TC编辑器的基本操作命令及其它基本功能;3.完成并熟悉程序输入、编译、连接、运行过程,直到程序输出结果正确;4.学习基本的调试程序方法(包含编译、连接错误信息的正确理解)。

5.可参考的程序实例如下(也可以参考教材范例):1) 最简单的C语言程序:main(){printf("This is my first program.\n");}2) 引用C语言函数库进行计算的程序:/*Please try exercises in chapter one of textbook in page 15*/#include "math.h"main(){float x;x=sin(2.2922);printf("sin(%f) is %f\n",2.2922,x);}3) 引用自定义函数的C语言程序:/*This is the function of average for data a,b,c*/float average(float a,float b,float c){avg=(a+b+c)/3.0;return avg;}main(){float x1,x2,x3;printf("Please input x1,x2,x3:");scanf("%f,%f,%f",&x1,&x2,&x3); /*Input for variable x1,x2,x3*/printf("\nAvg of %f,%f and %f is %f\n",x1,x2,x3,average(x1,x2,x3));}4)求1+2+3+ (100)5)给定5个数,求其最小者;6)求a+|b|。

编译链接执行实验报告(3篇)

编译链接执行实验报告(3篇)

第1篇一、实验目的1. 理解编译、链接和执行的基本概念和过程。

2. 掌握使用编译器、链接器和执行器完成程序编译、链接和执行的基本操作。

3. 学习调试程序,解决编译、链接和执行过程中出现的问题。

二、实验环境1. 操作系统:Windows 102. 编译器:Microsoft Visual Studio 20193. 链接器:Microsoft Visual Studio 20194. 执行器:Windows 10自带三、实验内容1. 编译程序2. 链接程序3. 执行程序4. 调试程序四、实验步骤1. 编译程序(1)创建一个名为“HelloWorld.c”的源文件,内容如下:```cinclude <stdio.h>int main() {printf("Hello, World!\n");return 0;}```(2)打开Microsoft Visual Studio 2019,创建一个控制台应用程序项目。

(3)将“HelloWorld.c”文件添加到项目中。

(4)在项目属性中设置编译器选项,选择C/C++ -> General -> Additional Include Directories,添加源文件所在的目录。

(5)点击“生成”按钮,编译程序。

2. 链接程序(1)在Microsoft Visual Studio 2019中,点击“生成”按钮,生成可执行文件。

(2)查看生成的可执行文件,路径通常在项目目录下的“Debug”或“Release”文件夹中。

3. 执行程序(1)双击生成的可执行文件,或在命令行中运行。

(2)查看输出结果,应为“Hello, World!”。

4. 调试程序(1)在Microsoft Visual Studio 2019中,点击“调试”按钮。

(2)程序进入调试模式,可以设置断点、观察变量等。

(3)运行程序,观察程序执行过程,分析问题原因。

编译链接实验报告

编译链接实验报告

一、实验目的1. 理解编译链接的基本概念和过程。

2. 掌握编译链接工具的使用方法。

3. 能够分析编译链接过程中可能出现的问题,并解决这些问题。

二、实验环境1. 操作系统:Windows 102. 编译器:GCC3. 链接器:GCC4. 开发工具:VS Code三、实验内容1. 编译过程2. 链接过程3. 编译链接常见问题及解决方法四、实验步骤1. 编写C语言源代码```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```2. 使用GCC编译源代码在命令行中输入以下命令:```gcc -o hello hello.c```该命令将生成名为`hello`的可执行文件。

3. 运行可执行文件在命令行中输入以下命令:```./hello```程序将输出:```Hello, World!```4. 链接过程分析在上述实验中,我们只编写了一个源代码文件,因此编译链接过程比较简单。

实际上,一个复杂的程序可能包含多个源代码文件、库文件等。

在这种情况下,链接过程就变得尤为重要。

链接过程主要包括以下步骤:(1)将所有编译后的目标文件(.o文件)合并成一个可重定位的文件(.o文件)。

(2)解析符号引用,将外部符号(如函数、变量)的地址与可重定位的文件中的符号地址进行绑定。

(3)生成最终的可执行文件(.exe文件)。

5. 编译链接常见问题及解决方法(1)链接错误:在链接过程中,如果遇到找不到符号、符号冲突等问题,会报错。

解决方法:- 检查源代码文件是否正确,确保所有引用的函数、变量都已声明。

- 检查头文件是否包含在源代码文件中。

- 检查库文件是否正确链接,确保库文件路径正确。

(2)符号冲突:在链接过程中,如果遇到同名符号,会出现冲突。

解决方法:- 使用不同的命名空间,避免符号冲突。

- 使用extern "C"关键字声明C++函数,使其以C语言方式链接。

C语言程序的编译和链接过程

C语言程序的编译和链接过程

C语⾔程序的编译和链接过程C语⾔程序的编译和链接过程1.程序的编译⼀般⽽⾔,⼤多数编译系统都提供编译驱动程序(complier driver),根据⽤户需求调⽤语⾔预处理器,编译器,汇编器和链接器.例如有如下历程: //main.cvoid swap();int buf[2]={1, 2};int main(){swap();return 0;}//swap.cint *bufp0 = &buf[0]int *bufp1;void swap(){int temp;bufp1 = &buf[1];temp = *bufp0;*bufp0 = *bufp1;*bufp1 = temp;}驱动程序⾸先运⾏C预处理器(cpp),它将C的源程序main.c翻译成⼀个ASCII码的中间⽂件main.i.接下来,驱动程序运⾏C编译器(ccl),将main.i 翻译成⼀个ASCII汇编语⾔⽂件main.s.然后,驱动程序运⾏汇编器(as),它将main.s翻译成⼀个可重定位的⽬标⽂件main.o.具体过程如下图所⽰:2.链接链接就是将不同部分的代码和数据收集和组合成为⼀个单⼀⽂件的过程,这个⽂件可被加载或拷贝到存储器执⾏.链接可以执⾏与编译时(源代码被翻译成机器代码时),也可以执⾏与加载时(在程序被加载器加载到存储器并执⾏时),甚⾄执⾏与运⾏时,由应⽤程序来执⾏.在现代系统中,链接是由链接器⾃动执⾏的.链接器分为:静态链接器和动态链接器两种.2.1.静态链接器静态链接器以⼀组可重定位⽬标⽂件和命令⾏参数作为输⼊,⽣成⼀个完全链接的可以加载和运⾏的可执⾏⽬标⽂件作为输出.静态链接器主要完成两个任务:1>符号解析:⽬标⽂件定义和引⽤符号.符号解析的⽬的在于将每个符号引⽤和⼀个符号定义联系起来.2>重定位:编译器和汇编器⽣成从地址零开始的代码和数据节.链接器通过把每个符号定义和⼀个存储器位置联系起来,然后修改所有对这些符号的引⽤,使得他们执⾏这个存储位置,从⽽重定位这些节.⽬标⽂件:⽬标⽂件有三种形式:1>可重定位的⽬标⽂件:包含⼆进制代码和数据,其形式可以再编译时与其他可定位⽬标⽂件合并起来,创建⼀个可执⾏⽬标⽂件.2>可执⾏⽬标⽂件:包含⼆进制代码和数据,其形式可以被直接拷贝到存储器并执⾏.3>共享⽬标⽂件:⼀种特殊的可重定位⽬标⽂件,可以再加载或运⾏时,被动态地夹在到存储器并执⾏.编译器和汇编器⽣成可重定位⽬标⽂件(包括共享⽬标⽂件),链接器⽣成可执⾏⽬标⽂件.可重定位⽬标⽂件:EF头L以⼀个16字节的序列开始,这个序列描述了字的⼤⼩和⽣成该⽂件的系统字节顺序.ELF头剩下的部分包含帮助链接器解析和解释⽬标⽂件的信息.其中包括ELF头的⼤⼩,⽬标⽂件的类型(⽐如,可重定位,可执⾏,共享⽬标⽂件),机器类型,节头部表的⽂件偏移,以及节头部表中的表⽬⼤⼩和数量.不同节的位置和⼤⼩是节头部表描述的,其中⽬标⽂件中的每个节都有⼀个固定⼤⼩的表⽬.ELF格式的可重定位⽬标⽂件结构如下图:.text:已编译程序的机器代码.rodata:只读数据.data:已初始化的全局C变量.bss:未初始化的全局C变量.在⽬标⽂件中这个节不占实际空间,仅是⼀个占位符..sysmtab:⼀个符号表,存放在程序中被定义和引⽤的函数和全局变量的信息..rel.text:当链接器把这个⽬标⽂件和其他⽂件结合时,.text节中的许多位置都需要修改.⼀般⽽⾔,任何调⽤外部函数或者引⽤全局变量的指令都要修改.另⼀个⽅⾯,调⽤本地函数的指令则不需要修改..rel.data:被模块定义或引⽤的任何全局变量的信息..debug:⼀个调试符号表.line:原始C源程序中的⾏号和.text节中机器指令之间的映射..strtab:⼀个字符串表,其中内容包括.symtab和.debug节中的符号表,以及节头部中的节名字.符号和符号表每个可重定位⽬标模块m都有⼀个符号表,它包含m所定义和引⽤的符号的信息.在链接器上下⽂中,有三种不同的符号:1>由m定义并能被其他模块引⽤的全局符号.全局链接器符号对应于⾮静态的C函数以及被定义为不带C的static属性的全局变量.2>由其他模块定义并被模块m引⽤的全局符号.这些符号成为外部符号,对应于定义在其他模块中的C函数和变量.3>只被模块m定义和引⽤的本地符号.有的本地符号链接器符号对应于带static属性的C函数和全局变量.这些符号在模块m中的任何地⽅都可见,但是不能被其他模块引⽤.⽬标⽂件中对应于模块m的节和相应的源⽂件的名字也能获得本地符号.符号表式有汇编器构造的,使⽤编译器输出到汇编语⾔.s⽂件中的符号.sysmab节中包含ELF符号表.这张符号表包含⼀个关于表⽬的数组.表⽬的格式如下:typedef struct{int name; //string table offsetint value; //section offset, or VM addressint size; //object size in byteschar type:4, //data, func, section, or src filebinding:4; //local or globalchar reserved; //unusedchar section; //section header index, ABS, UNDEF, or COMMON}Elf_Symbol;2.1.1符号解析链接器解析符号引⽤的⽅法是将每个引⽤和它输⼊的可重定位⽬标⽂件按的符号表中的⼀个确定的符号定义联系起来.对于那些和引⽤定义在相同模块的本地符号的引⽤,符号解析式⾮常简单明了的.编译器只允许每个模块中的每个本地符号只有⼀个定义.编译器还确保静态本地变量,它们会有本地链接器符号,拥有唯⼀的名字.对于全局符号的引⽤解析,当编译器遇到⼀个不是在当前模块中定义的符号(变量或函数名)时,它会假设该符号式在其他某个模块中定义的,⽣成⼀个链接器符号表表⽬,并把它交给链接器处理.如果链接器在它的任何输⼊模块中都找不到这个被引⽤的符号,它就输出⼀条错误信息并终⽌.在编译时,编译器输出的每个全局符号给汇编器,或者是强,或者是弱,⽽汇编器把这个信息隐含地编码在可重定位⽬标⽂件的符号表中.函数和以初始化的全局变量是强符号,未初始化的全局变量是弱符号.根据符号的强弱,有如下规则:1>不允许有多个强符号2>如果有⼀个强符号和多个弱符号,则选择强符号3>如果有多个弱符号,则任选⼀个弱符号与静态库链接所有编译系统都提供⼀种机制,将所有相关的⽬标模块打包为⼀个单独的⽂件,称为静态库,它可以⽤做链接器的输⼊.当链接器构造⼀个输出的可执⾏⽂件时,它只拷贝静态库⾥被应⽤程序引⽤的⽬标模块.在unix系统中,静态库以⼀种称为存档的特殊⽂件格式存放在磁盘中.存档⽂件是⼀组连接起来的可重定位⽬标⽂件的集合,有⼀个头部描述每个成员⽬标⽂件的⼤⼩和位置.链接器如何使⽤静态库来解析引⽤在符号解析阶段,链接器从左到右按照它们在编译驱动程序命令⾏上出现的相同顺序来扫描可重定位⽬标⽂件和存档⽂件.在这次扫描中,链接器位置⼀个可重定位⽬标⽂件集合E,这个集合中的⽂件会被合并起来形成可执⾏⽂件,和⼀个未解析的符号集合U,以及⼀个在前⾯输⼊⽂件中已定义的符号结合D.初始时,E,U,D都是空的.1>对于命令⾏上的每个输⼊⽂件f,链接器会判断f是⼀个⽬标⽂件还是⼀个存档⽂件.如果是⼀个⽬标⽂件,那么链接器把f添加到E,修改U和D 来反映f中的符号定义和引⽤,并继续下⼀个输⼊⽂件.2>如果f是⼀个存档⽂件,那么链接器就尝试匹配U中未解析的符号由存档⽂件成员定义的符号.如果某个存档⽂件成员m,定义了⼀个符号来解析U中的⼀个引⽤,那么就将m加到E中,并且链接器修改U和D来反映m中的符号定义和引⽤.对存档⽂件中的所有成员⽬标⽂件都反复进⾏这个过程,知道U和D都不再发⽣变化.在此时,任何不包含在E中的成员⽬标⽂件都会被丢弃,⽽链接器将继续到下⼀个输⼊⽂件.3>如果当链接器完成对输⼊命令⾏的扫描后,U是⾮空的,那么链接器就会输出⼀个错误并终⽌.否则,它会合并重定位E中的⽬标⽂件,从⽽构建输出的可执⾏⽂件.这种⽅式,导致了在输⼊命令时要考虑到,静态库和⽬标⽂件的位置,库⽂件放在⽬标⽂件的后⾯,如果库⽂件之间有引⽤关系,则被引⽤的库放在后⾯.2.1.2重定位当链接器完成了符号解析这⼀步时,它就把代码中的每个符号引⽤和确定的⼀个符号定义(也就是,它的⼀个输⼊⽬标模块中的⼀个符号表表⽬)联系起来.此时,链接器就知道它的输⼊⽬标模块中的代码节和数据解的确切⼤⼩.然后就开始重定位步骤.重定位由两步组成:1>重定位节和符号定义:在这⼀步中,链接器将所有相同类型的节合并为⼀个新的聚合节.然后,链接器将运⾏时存储器地址赋值给新的聚合节,赋给输⼊模块定义的每个节,以及赋给输⼊模块定义的每个符号.当这⼀步完成时,程序中的每个指令和全局变量都⼀个唯⼀的运⾏时存储器地址.2>重定位节中的符号引⽤:在这⼀步中,链接器修改代码节和数据节中对每个符号的引⽤,使得它们指向正确的运⾏时地址.为了执⾏这⼀步,链接器依赖于称为重定位表⽬的可重定位⽬标模块中的数据结构.重定位表⽬:当汇编器⽣成⼀个⽬标模块时,它并不知道数据和代码最终将存放在存储器中的什么位置.它也不知道这个模块引⽤的任何外部定义的函数或者全局变量的位置.所以,⽆论何时汇编器遇到对最终位置未知的⽬标引⽤,它就会⽣成⼀个重定位表⽬,告诉链接器在将⽬标⽂件合并为可执⾏⽂件时,如何修改这个引⽤.代码的重定位表⽬放在.rel.text中.已初始化数据的重定位表⽬放在rel.data中.ELF重定位表⽬的格式如下:typedef struct{int offset; //offset of the reference to relocateint symbol:24, //symbol the reference point totype:8; //relocation type} Elf32_Rel;ELF定义了11中不同的重定位类型,其中最基本的两种重定位类型是:R_386_PC32(重定位⼀个使⽤32PC相关的地址引⽤)和R_386_32(重定位⼀个使⽤32位绝对地址的引⽤).2.2.动态链接器共享库是⼀个⽬标模块,在运⾏时,可以加载到任意的存储器地址,并在存储器中和⼀个程序链接起来.这个过程称为动态链接,是由动态链接器完成的.共享库的共享在两个⽅⾯有所不同.⾸先,在任何给定的⽂件系统中,对于⼀个库只有⼀个.so⽂件.所有引⽤该库德可执⾏⽬标⽂件共享这个.so ⽂件中的代码和数据,⽽不是像静态库德内容那样被拷贝和嵌⼊到引⽤它们的可执⾏的⽂件中.其次,在存储器中,⼀个共享库的.text节只有⼀个副本可以被不同的正在运⾏的进程共享.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

应用项目(工程)
一个应用项目(Project)是由若干编译
单元(简称单元)组成的,而每个编译 元由一个程序文件(扩展名是CPP)及 与之相关的头文件(扩展名是H)组成 。
编译主单元
在组成项目的所有单元中,必须有一个
(也只能有一个)单元包含主函数main() 的定义,这个单元称为主单元,相应的 程序文件称为主程序文件。一个简单的 控制台应用系统可以只有一个单元(主 单元)。通过编译,每个单元生成一个 浮动程序文件(也叫做目标程序文件, 扩展名是OBJ)。
实例说明
C 、输入程序源代码 (1)双击Source Files 文件夹将其展开,前面的”+” 号立即变为”-”号,并且下面显示出文件 area.cpp的图标,如图 (2) 双击文件 area.cpp 的图标,屏幕上出现一个英 文的信息提示窗口,不要去管它是什么意思。 点击是( Y)按钮,即可。屏幕右侧出现一个 针对文件area.cpp的文本编辑器窗口。 (3)在文本编辑器窗口中即可输入所有程序语句。 如图
实例说明
(3)点击菜单命令Add Files to Folder…(向文件夹中增添 文 件 … ) , 接 着 , 屏 幕 上 出 现 一 个 Insert Files into Project(将文件插入到项目中)对话框。如图 ( 4)在文件名栏中输入 area.cpp后点击 OK,出现一个信 息对话框,可以不管是什么意思(如果不知道太多的 ENGLISH 的话),只要点击”是”( Y),就可以。 Source Files 文 件 夹 前 出 现 一 个 方 框 , 方 框 中 有 个 ”+”号,表示其中有文件。
编译、连接生成可执行的文件
通过编译,每个单元生成一个浮动程序
文件(也叫做目标程序文件,扩展名是 OBJ)。 通过连接这些浮动程序文件,整个系统 生成一个唯一的可执行的文件,扩展名 是EXE,而主名与项目名称相同。
实例说明
建立一个控制台应用项目的过程
A 、在D盘根目录下建立名为area项目(及工作区) (1)启动Visual C++ 后,选择菜单命令文件->新 建 (File->New),屏幕上出现新建( New)对话框。 选中 Projects 标签,在工程名称 : ( Project name:) 中输入 area,作为工程名称。如图 (2) 在位置( Location)下输入一个全路径目录 名 。 点 击 ( Win32 控 制 台 应 用 系 统 ) Win32 Console Application,点击(确定)OK按钮,会出 现 Win32 控制台应用系统 -1 个步骤中的第 1 步 (Win32 Console Application-step1 of 1)窗口如图
实验一 C++程序的编辑、 编译、连接和运行
实验目的 学习一些预备知识 实验内容与及要求
实验目的
一、Visual C++6.0 软件的安装 二、熟悉编译系统的操作环境
三、掌握编辑、编译、连接和运行一 个C++程序的基本过程
Visual C++6.0 软件的安装
这个软件与其它的微软公司出的软件一
( 2 ) 双 击 area files 文 件 夹 将 其 展 开 , 在 其 下 面 显 示 出 Source Files( 源程序文件 ) 、 Header File( 头文件 ) 和 Resource Files(资源文件)三个文件夹,右键单击Source Files,弹出一个 相关菜单,(包括有:New Folder…、Add Files to Folder… 、Settings…等等)。如图
应用 项目
编译单元 相关文件
(扩展名为CPP 、H等文件)
工作区
工作区(或称为项目组)由若干个关系密切 的项目构成。工作区在建立时自动生成扩展名为 DSW 的 工 作 区 文 件 , 以 及 扩 展 名 为 DSP,NCB,OPT等其他文件主要用来保存工作区信 息和项目信息;这些文件都由编译系统自动维护 。每个工作区在建立时必须为之命名,同时生成 一个以该名称为目录的文件目录,所有与该工作 区相关的文件都将保存在该目录中 。
实例说明
B、 建立主程序文件area.cpp (1)完成了上面的相关步骤后,在出现的屏幕工边的窗口显 示的是工作区及项目信息,其中包括Class View和File View两 个卡片 ,如果当前卡片不是 FileView, 点击标有 File View的标 签,使之成为当前卡片。FileView以文件夹的形式显示项目 中已有的文件,其中的area files为项目area的文件夹。如图
实例说明
(3) 点击Win32 Console Application-step1 of 1窗口 中的”完成”(Finish)按钮。 (4)点击新建工程信息(New project Information) 窗口中的”确定”( OK)按钮,项目建立完 毕,在相应的地方多了一个名为 area 的目录。 如图
我们在这里讲的实例都是控制台应用系统。所以我 们结合DOS应用系统的开发过程来学习Visual C++开发环境。
几个概念
工作区(dsw
应用项目.cpp .obj .exe
编译单元(main()) 相关文件
(扩展名为CPP 、H等文件)
DSP NCB OPT)
应用项目
编译单元 相关文件
(扩展名为CPP 、H等文件)
样,只要在光盘中找到setup.exe文件并 执行,就可以启动一个安装向导,按照 安装向导一步一步的安装完成。
预备知识
Visual C++6.0简介
Visual C++是微软公司的产品,是一个集成开发环境,最近有 7.0版的出现在市面上。我们这里学习6.0版的集成环境。 Visual C++不但是一个功能强大的C++编译器,而且是一个对 应用项目(软件工程)进行统一管理的工具软件。每一个 开发过程中的应用系统就是一个应用项目(简称项目) Visual C++可用于管理基于Windows的应用项目,也可用于管 理基于DOS的应用项目(也叫做控制台应用系统)。
相关文档
最新文档