调试出现 WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: ?C_START MODULE: STARTUP.obj (?C_STARTUP)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了调试出现 WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: ?C_START MODULE: STARTUP.obj (?C_STARTUP)相关的知识,希望对你有一定的参考价值。

如何解决?

因为文件里选择了generate assembler SRC file和assemble SRC file选项,将选项勾选去除,然后再重新进行即可解决,步骤如下:

1、首先第一步就是要把Source group组下面的A51.C删掉,如果没有删,在A51.c上点右键,选择remove file " 。

2、接着就是要建一个新的c文件,里面写一个空的函数,这时候把该文件添加到project中,注意该文件不能再选generate assembler SRC file和assemble SRC file选项。注意的是重新编译工程,如果警告该函数没被调用,在主文件中调一下。

3、然后就是其他:UNRESOLVED EXTERNAL SYMBOL 说明连接的时候没有找到外部变量
extern xdata unsigned char RxPnt。在某个.c文件里有xdata unsigned char RxPnt才行。

4、最后就是把主文件中的几个函数移至该文件,注意的是把该文件添加到project中,注意该文件不能再选generate assembler SRC file和assemble SRC file选项。重新编译工程即可。

参考技术A

由于在文件中选择了生成汇编程序SRC文件和汇编SRC文件选项,因此将删除该选项,然后重新执行该选项。步骤如下:

1、第一步是删除Source组下的A51.C.如果未删除,请右键单击A51.c并选择“删除文件”。

2、然后是构建一个新的c文件,它写一个空函数,这次将文件添加到项目中,注意文件不能选择生成汇编程序SRC文件并汇编SRC文件选项。请注意,项目已重新编译。如果未调用该函数,则在主文件中调用它。

3、然后另一个:UNRESOLVED EXTERNAL SYMBOL描述当外部变量extern xdata unsigned char RxPnt时找不到连接。在.c文件中有xdata unsigned char RxPnt。

4、最后,将主文件中的多个函数移动到文件中。请注意,该文件已添加到项目中。请注意,该文件不能再选择生成汇编程序SRC文件并组装SRC文件选项。重新编译项目。

参考技术B 是试过了,KEil编译通过,没有问题,可能是你Keil设置的问题,

解决办法:
1.是文件没有添加到工程里。
2.可能是因为存在没有被调用的已经定义的函数。
3.不知道你有没有把Source group组下面的A51.C删掉,如果没有删,在A51.c上点右键,选择remove file " ".
4.建一个新的c文件,里面写一个空的函数,把该文件添加到project中,注意该文件不能再选generate assembler SRC file和assemble SRC file选项。重新编译工程,如果警告该函数没被调用,在主文件中调一下。
5.建一个新的c文件,把主文件中的几个函数移至该文件,把该文件添加到project中,注意该文件不能再选generate assembler SRC file和assemble SRC file选项。重新编译工程。

其他:UNRESOLVED EXTERNAL SYMBOL 说明连接的时候没有找到外部变量
extern xdata unsigned char RxPnt; 只是说明引用外部变量,并不是实际的声明。
应该在某个.c文件里有xdata unsigned char RxPnt才行。

extern中对这个变量做了声明,说这个变量将会在这个文件中用到,但并没有定义

也就是那个变量并没有真实存在.

需要要某个地方定义一下,

也有可能是你定义了,但是被条件编译给去掉了也有可能.具体查一下工程里的所有源文件看看
追问

谢谢大侠指教!

参考技术C C文件中你没有对一个变量进行声明,而只是在头文件中进行了变量声明

PHP调试的时候出现了警告:

PHP调试的时候出现了警告:

It is not safe to rely on the system解决方法,其实就是时区设置不正确造成的,本文提供了3种方法来解决这个问题。

实际上,从PHP 5.1.0开始当对使用date()等函数时,如果timezone设置不正确,在每一次调用时间函数时,都会产生E_NOTICE 或者 E_WARNING 信息,而又在php中,date.timezone这个选项,默认情况下是关闭的,无论用什么php命令都是格林威治标准时间,但是PHP5.3中如果没有设置部分时间类函数也会强行抛出了这个错误的。
PS:现在由于大部分人使用VPS/云主机,需要自己配置的环境的就更加会容易出现这个情况。
建议:不熟悉PHP环境还是用比较成熟的一键安装包吧。

 

方法1:

(最好的方法)在php.ini里加上找到date.timezone项,设置date.timezone = "Asia/Shanghai",重启环境就ok了。

 

方法2:

在需要用到这些时间函数的时候,在页面添加date_default_timezone_set("PRC");

 

方法3:

在页头加上设置时区ini_set(‘date.timezone‘,‘Asia/Shanghai‘);

 

错误代码:
Warning: date(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Chongqing’ for ‘CST/8.0/no DST’ instead

Warning: strtotime(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Chongqing’ for ‘CST/8.0/no DST’ instead

Warning: date_default_timezone_get(): It is not safe to rely on the system‘s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Chongqing‘ for ‘CST/8.0/no DST‘ instead in <b>/home/ftp/n/nimaboke/include/lib/function.base.php

 http://beikeit.com/post-682.html

 







以上是关于调试出现 WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: ?C_START MODULE: STARTUP.obj (?C_STARTUP)的主要内容,如果未能解决你的问题,请参考以下文章

PHP调试的时候出现了警告

Flutter 调试:警告:未安装 CocoaPods。跳过 pod 安装

3516A调试

IAR调试cc2541串口遇到的Warning : Possible IDATA stack overflow detected

logging模块

Keil常见错误汇总及处理方式