什么是程序的编译和链接

KeilμVision4是Keil软件公司为8051系列微控制器及其兼容产品设计的集成式软件开发环境。μVision4集成了C51编译器和A51汇编器,其界面类似于Microsoft VS,支持C语言和汇编语言程序的编写和调试,功能强大。

2009年2月发布Keil uVision4,Keil uVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。2011年3月ARM公司发布最新集成开发环境RealView MDK开发工具中集成了最新版本的Keil uVision4,其编译器、调试工具实现与ARM器件的最完美匹配。

将源程序加入工程后,必须生成可执行的目标文件,并将其下载到单片机的程序存储器中,该程序才能执行。而在这之前,必须保证程序没有基本的语法错误,如指令格式错误和变量重复定义等。在μVision4中,可以通过“编译(Translate)”查找程序中的语法错误,通过“生成目标文件(Build)”功能或“重建目标文件(Rebuild)”功能将没有语法错误的源程序转换为“HEX”格式的目标文件。需要特别强调的是,若没有编译错误的程序不能产

生预期的运行结果,则意味着程序中存在逻辑错误,此时可以利用μVision4的调试“Debug”功能查找和修正错误。

程序的编译和链接

1.程序的编译

可以通过鼠标左键单击快捷菜单中的“Translate”(见图7-13a)或“Project”→“Translate”子菜单(见图7-13d)进行源程序编译。若程序没有语法错误,则“Build Output”窗口的输出信息为:“test.c–0 Error(s),0 Warning(s)”,表示“test.c”文件中有0个警告(Warning)和0个错误(Error),如图7-14a所示。若程序中存在基本语法错误,软件会在“Build Output”窗口输出错误提示信息。如图7-14b所示,“test.c–1 Error(s),0Warning(s)”表示“test.c”文件中有0个警告(Warning)和1个错误(Error);错误提示信息“TEST.C(13):error C202:'j':undefined identifier”表示错误出现在“TEST.C”文件的第13行(若用鼠标单击错误提示信息,则在源程序窗口中对应行的行首会出现绿色箭头),“error C202”表示错误编号为C202,而C202号错误为“Undefined Identifier”,提示信息“‘j’:undefined identifier”表示变量j没有定义。由图7-14b所示源程序可以看出,出现这个错误的原因是,文件第10行的变量j定义语句前加上了注释符号“//”,成为注释信息;去掉注释符号“//”后再次编译,错误提示将消失。

图7-13程序编译链接的相关菜单

a)“Translate”编译快捷菜单b)“Build”链接快捷菜单

c)“Rebuild”重新编译链接快菜单d)“Project”菜单

需要注意,“Error(s)”错误将导致无法生成目标代码,“Warning(s)”警告是程序中不严重的小问题,不影响目标文件的生成。但是最好消除所有的警告,因为警告类的小问题可能会导致潜在的、不易发现的严重问题。另外,编译不能产生目标文件,若要生成目标文件,还需在编译的基础上进行链接操作。

图7-14编译链接相关菜单和界面

a)编译无错误的提示信息b)编译错误提示信息

2.程序的链接

单击“Build”快捷图标(见图7-13b)或“Project”→“Build”子菜单(见图7-13d),可以完成对源程序的编译和链接,并生成目标文件。单击“Rebuild”快捷图标(见图7-13c)或“Project”→“Rebuild”子菜单(见图7-13d)也可以完成编译链接操作。“Build”与“Rebuild”的区别是,“Build”仅编译链接新的源程序文件或源程序文件中被修改的部分,而“Rebuild”将重新编译链接源程序文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值