*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _DELAY_MS MODULE: LCD1602.obj (LCD1602)
时间: 2023-09-09 09:06:39 浏览: 103
这个错误通常表示在代码中出现了多个相同名称的公共定义。在您的情况下,出现了多个名为_DELAY_MS的公共定义,这可能是由于重复包含头文件或重复定义变量或函数引起的。
要解决此问题,您可以检查以下几点:
1. 头文件重复包含:确保在需要使用_DELAY_MS的源文件中,只包含了一次相关的头文件。避免在其他头文件中重复包含。
2. 变量或函数重复定义:确保在代码中只有一个_DELAY_MS的变量或函数定义。如果多个文件中都需要使用_DELAY_MS,可以将其定义为静态变量或函数,或者将其放在单独的源文件中,并在其他文件中使用extern关键字声明。
3. 命名冲突:检查您的代码中是否有其他与_DELAY_MS同名的变量、函数或宏定义。如果有,请修改其中一个的名称以避免冲突。
通过检查和修复上述问题,您应该能够解决MULTIPLE PUBLIC DEFINITIONS错误。如果问题仍然存在,请提供更多相关的代码和错误信息,以便我可以更好地帮助您解决问题。
相关问题
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _DELAY_10US MODULE: LCD1602.obj (LCD1602) *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _DELAY_MS MODULE: LCD1602.obj (LCD1602) *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_DELAY_10US?MAIN
这些错误是由于在 LCD1602.obj 模块中有多个公共定义的符号 _DELAY_10US 和 _DELAY_MS 导致的。这可能是由于重复的定义或者不正确的模块导入引起的。而警告 L16 表示未被调用的段被忽略,这意味着该段的代码没有被执行。
要解决这些错误,你可以检查 LCD1602.obj 模块中是否存在重复的定义,确保每个符号只有一个定义。另外,还要确保正确导入模块并正确引用符号。
如果你能提供更多关于你的项目和代码的细节,我可以给出更具体的帮助。
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _delay_ms MODULE: .\Objects\demo_gpio.obj (DEMO_GPIO) DEFINED: .\Objects\system.obj (SYSTEM)这段报错什么意思
这段报错是指在程序中,_delay_ms这个函数被定义了多次,并且这些定义都是公共的(public)。其中一个定义在demo_gpio.obj文件中,另一个定义在system.obj文件中。这种情况是不允许的,因为程序不知道要使用哪个定义。为了解决这个问题,你需要检查代码,确保每个函数都只被定义了一次,并且在需要使用它的地方进行声明。你还可以考虑使用头文件来管理函数的声明和定义,以避免这种问题的发生。
阅读全文