KEIL*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: ?C_START MODULE: .\STARTUP.obj (?C_STARTUP)
assembling STARTUP.A51...
linking...
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: ?C_START
MODULE: .\STARTUP.obj (?C_STARTUP)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: ?C_START
MODULE: .\STARTUP.obj (?C_STARTUP)
ADDRESS: 000DH
Program Size: data=9.0 xdata=0 code=15
"bujindianji" - 0 Error(s), 2 Warning(s). 展开
2016-06-02
2019-03-30
1、将该整个工程文件关掉,然后用记事本或notepad++等其他编辑软件把所要复制(即警告?C_START这个函数)重新复制进去,保存,再打开工程,编译;
2、将写有?C_START这个函数的.c文件从工程中移除,重新写好或复制该函数,保存,再将.c文件添加进工程,编译。
具体呢,小白不懂
就是说如果你是多个工程的文件,在比如:1.c的文件中有变量:unsigned char TMP; 但是你在1.h的头文件中也只声明unsigned char TMP的话,你在Main.c中先包含#include "1.h" 要用TMP的时候 必须在1.h当中 进行声明:extern unsigned char TMP; 这时 你在main.c或者其他文件中才可以引用。如果还不懂就把代码帖出来
还一种就是存储空间超出范围也会出现类似的情况,但你这里好像没多少代码。
解决方法:
For a project in the SMALL memory model that uses no floating point arithmetic, C51S.LIB is required.
For a project in the LARGE memory model that uses floating-point, C51FPL.LIB and C51L.LIB are required.
If a project uses floating arithmetic, it is important that C51FPx.LIB is included before the standard library file C51x.LIB. Otherwise printf and scanf will not work with floating-point numbers.
When you are using µVision, you may simply add the require library file(s) to the project in the same way as you are adding source files.
官网给的解释:网页链接
这些lib文件在keil\C51\LIB下都有
在C文件里使用汇编语言必须要进行这项操作否则会有warning
广告 您可能关注的内容 |