KEIL*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: ?C_START MODULE: .尀STARTUP.obj (?C_STARTUP)

2024年11月16日 10:19
有5个网友回答
网友(1):

如果是KEIL初学者, 如果C程序很简单,而且 比对过每个单词都没有问题。 实在找不到错误, 那还有一种可能: 你没有将这个C文件加入到工程中~~~ 我当时出现的错误代码与你这个 一模一样~~~~为了这么简单的东西找了好多资料。 自学的人伤不起。 心酸呀~~ /crying

网友(2):

也有可能是你复制?C_START这个函数时没有真正复制进去,即在keil中看到是复制过去了,但是你可以尝试用notepad++或记事本打开这个.c文件就会发现根本没有添加进去复制的内容,也可以将.c文件从工程中移除,再打开这个.c文件也会发现没有添加复制内容。这是偶尔现象,尤其出现在从一个工程复制函数到另一个工程,或头文件中添加某个定义也会出现这现象。解决方法:
1、将该整个工程文件关掉,然后用记事本或notepad++等其他编辑软件把所要复制(即警告?C_START这个函数)重新复制进去,保存,再打开工程,编译;
2、将写有?C_START这个函数的.c文件从工程中移除,重新写好或复制该函数,保存,再将.c文件添加进工程,编译。

网友(3):

外部符合没有连接过去,可以使用extern 作外部声明

网友(4):

解决方法:

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

网友(5):

你没有将这个C文件加入到工程中