*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS这段报错什么意思‘
时间: 2023-07-19 20:58:04 浏览: 138
这个错误表示在你的代码中有多个公共定义,即有多个模块或源文件中定义了同名的公共符号。公共符号是指可以被其他模块访问的变量、函数或对象等。这会导致链接器无法确定使用哪个定义,从而导致链接失败。
解决这个错误的方法是检查你的代码,查找所有同名的公共符号,并将其重命名或者将其定义放在一个单独的模块中。如果你使用的是C语言,可以使用static关键字将变量或函数定义为私有的,这样它们就只能在当前模块中访问,不会与其他模块产生冲突。
相关问题
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS报错
这个错误通常是由于在一个程序中有多个相同的公共定义引起的。这可能是因为您在多个源文件中定义了同一个变量或函数,并且这些源文件被链接在一起,从而导致了多个公共定义。解决此问题的方法是将公共定义限制为一个源文件中,并在其他源文件中将其声明为外部变量或函数。这可以通过在定义变量或函数时使用关键字"extern"来实现。另外,您还可以使用头文件来定义变量和函数,并将头文件包含在需要使用这些变量和函数的源文件中。
*** 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 模块中是否存在重复的定义,确保每个符号只有一个定义。另外,还要确保正确导入模块并正确引用符号。
如果你能提供更多关于你的项目和代码的细节,我可以给出更具体的帮助。
阅读全文