EDN首页   博客首页

日志档案

发表于 2008-7-8 21:28:19

2

标签: 单片机  编译出错  头文件  未定义  

在学习匠人的流水灯程序时的收获(高手勿进)

今天将匠人的流水灯实验程序下载了,打算看看实际效果。用的medwin3.装了keil8.12,将编译路径设置好,复制程序,建立项目。编译时出错!

出错提示如下:

 ============================= 编 译 / 汇 编 =============================
  编译/汇编文件: "E:\WorkDir\jr_LED\JRLED.c"
   <编译命令行> C:\Keil\C51\BIN\C51.exe JRLED.c DB OE OPTIMIZE(3,SPEED) WARNINGLEVEL(0)
   <编译器提示> C51 COMPILER V8.12 - SN: K1CMC-BKSCXC
   <编译器提示> COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2008
   <编译器提示> C51 COMPILATION COMPLETE.  0 WARNING(S),  16 ERROR(S)
      ERROR C202 IN LINE 128 OF JRLED.C: 'P0_0': undefined identifier
      ERROR C202 IN LINE 128 OF JRLED.C: 'P0_0': undefined identifier
      ERROR C202 IN LINE 129 OF JRLED.C: 'P0_1': undefined identifier
      ERROR C202 IN LINE 129 OF JRLED.C: 'P0_1': undefined identifier
      ERROR C202 IN LINE 130 OF JRLED.C: 'P0_2': undefined identifier
      ERROR C202 IN LINE 130 OF JRLED.C: 'P0_2': undefined identifier
      ERROR C202 IN LINE 131 OF JRLED.C: 'P0_3': undefined identifier
      ERROR C202 IN LINE 131 OF JRLED.C: 'P0_3': undefined identifier
      ERROR C202 IN LINE 132 OF JRLED.C: 'P0_4': undefined identifier
      ERROR C202 IN LINE 132 OF JRLED.C: 'P0_4': undefined identifier
      ERROR C202 IN LINE 133 OF JRLED.C: 'P0_5': undefined identifier
      ERROR C202 IN LINE 133 OF JRLED.C: 'P0_5': undefined identifier
      ERROR C202 IN LINE 134 OF JRLED.C: 'P0_6': undefined identifier
      ERROR C202 IN LINE 134 OF JRLED.C: 'P0_6': undefined identifier
      ERROR C202 IN LINE 135 OF JRLED.C: 'P0_7': undefined identifier
      ERROR C202 IN LINE 135 OF JRLED.C: 'P0_7': undefined identifier
   <MedWin提示> 编译/汇编过程中发现错误。

显示没定义,奇怪了,以前没有碰见过这种情况。将程序复制到keil建立的项目中,依然是没有定义。将“undefined identifier”做关键词在百度中搜索,网友提示看看头文件里的定义,在keil的inc文件夹的atmel文件夹中打开头文件,定义正常。回到medwin3,在项目属性中查看,在C语言标签栏中,头文件的路径没有定义,将头文件路径添加后再次编译,正常。

分析出错原因,头文件的路径在没有定义时是系统默认的根目录,而在我的电脑上不是,所以提示没有定义。猜测另一种解决办法是将头文件拷贝到根目录,没有尝试,只是猜测。不过前面的方法切实可行。

 ============================= 编 译 / 汇 编 =============================
  编译/汇编文件: "E:\WorkDir\jr_LED\JRLED.c"
   <编译命令行> C:\Keil\C51\BIN\C51.exe JRLED.c DB OE OPTIMIZE(3,SPEED) WARNINGLEVEL(0) INCDIR(C:\Keil\C51\INC\Atmel\)
   <编译器提示> C51 COMPILER V8.12 - SN: K1CMC-BKSCXC
   <编译器提示> COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2008
   <编译器提示> C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

  ============================= 产 生 代 码 =============================
   正在编译文件: "E:\WorkDir\jr_LED\JRLED.c"...
      <编译器提示> 编译完成!
   正在连接项目: "jr_LED"...
      <连接命令行> C:\Keil\C51\BIN\BL51.EXE JRLED.obj TO jr_LED.omf  RAMSIZE(128)
      <连接器提示> BL51 BANKED LINKER/LOCATER V6.11 - SN: K1CMC-BKSCXC
      <连接器提示> COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2007
      <连接器提示> Program Size: data="28".0 xdata="0" code="251"
      <连接器提示> LINK/LOCATE RUN COMPLETE.  0 WARNING(S),  0 ERROR(S)
   正在生成代码输出文件...
      <代码输出提示> 代码文件输出到: "E:\WorkDir\jr_LED\Output\jr_LED.hex"。

将程序烧进单片机,通电。好了。

系统分类: 单片机   |   用户分类: 工作笔记   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(441)    回复(0)  

投一票您将和博主都有获奖机会!