Build target '目标 1' compiling LCD1602.c... linking... *** 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 Program Size: data=13.1 xdata=0 code=600 目标未创建
时间: 2024-01-17 10:35:30 浏览: 365
这个错误是由于在链接过程中,编译器发现了多个公共定义的符号"_DELAY_10US"和"_DELAY_MS",这通常是由于多个源文件包含了同样的定义所致。为了解决这个问题,你可以检查你的代码,确保只有一个定义了这些符号。你可以尝试以下几种方法来修复这个错误:
1. 在LCD1602.c文件中检查是否有重复的定义。确保只有一处定义了"_DELAY_10US"和"_DELAY_MS"。
2. 检查是否有其他文件包含了LCD1602.c文件。如果有其他文件包含了同样的代码,那么可能会导致重复定义的错误。可以尝试将重复包含的文件移除或者仅在需要的地方包含。
3. 如果你使用了库文件,检查是否正确地链接了库文件。如果库文件中也定义了"_DELAY_10US"和"_DELAY_MS",则可能会引发重复定义的错误。请确保正确地链接库文件。
4. 如果以上方法都没有解决问题,你可以尝试给重复定义的符号添加static关键字,将其限定在当前文件内部。例如,在LCD1602.c文件中将"_DELAY_10US"和"_DELAY_MS"定义改为static。
希望这些解决方法可以帮助你解决问题。如果还有其他问题,请随时提问。
相关问题
Build target '目标 1' compiling LED.c... linking... *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: KEY MODULE: LED.obj (LED) Program Size: data=30.0 xdata=0 code=1544 目标未创建
这个错误提示表明在LED.obj (LED)模块中有多个公共定义的符号 KEY。这通常是因为您在代码中多次定义同一个变量或函数。您可以通过以下方式解决此问题:
1. 检查您的代码,确保您没有在多个文件中多次定义同一个变量或函数。
2. 如果您确实需要在多个文件中使用同一个变量或函数,请将其定义为静态变量或函数。这将限制其作用域,仅限于当前文件中使用。
3. 如果您使用的是C++语言,请使用头文件保护来避免多次包含同一个头文件。
4. 如果上述方法都不能解决问题,请检查您的编译器设置并确保其正确配置。
Build started: Project: 冒号间隔一秒亮灭循坏 Build target 'Target 1' compiling 电机.c... linking... *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: MAIN MODULE: .\Objects\电机.obj (____) *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?MAIN?____ *** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL SYMBOL: MAIN MODULE: D:\C51\LIB\C51S.LIB (?C_INIT) ADDRESS: 001BH Program Size: data=27.0 xdata=0 code=459 Target not created. Build Time Elapsed: 00:00:00
这是一个编译错误的报告,其中包含了多个错误和警告。其中比较重要的是:
- 错误 L104:出现了多个公共定义,这通常是因为在多个源文件中定义了同一个变量或函数。
- 错误 L118:引用了错误的外部符号,这通常是因为没有正确地包含所需的库文件或头文件。
你需要仔细检查你的代码和编译选项,查找是否存在这些问题。同时,你还可以尝试搜索这些错误和警告信息,找到其他开发者遇到过类似的问题,并参考他们的解决方案。
阅读全文