*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS这段报错什么意思‘
时间: 2023-07-19 18:58:04 浏览: 91
这个错误表示在你的代码中有多个公共定义,即有多个模块或源文件中定义了同名的公共符号。公共符号是指可以被其他模块访问的变量、函数或对象等。这会导致链接器无法确定使用哪个定义,从而导致链接失败。
解决这个错误的方法是检查你的代码,查找所有同名的公共符号,并将其重命名或者将其定义放在一个单独的模块中。如果你使用的是C语言,可以使用static关键字将变量或函数定义为私有的,这样它们就只能在当前模块中访问,不会与其他模块产生冲突。
相关问题
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS报错
这个错误通常是由于在一个程序中有多个相同的公共定义引起的。这可能是因为您在多个源文件中定义了同一个变量或函数,并且这些源文件被链接在一起,从而导致了多个公共定义。解决此问题的方法是将公共定义限制为一个源文件中,并在其他源文件中将其声明为外部变量或函数。这可以通过在定义变量或函数时使用关键字"extern"来实现。另外,您还可以使用头文件来定义变量和函数,并将头文件包含在需要使用这些变量和函数的源文件中。
为什么keil编译*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
keil编译错误*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS是由于在同一个工程中存在多个具有相同名称的公共定义(例如函数或变量)导致的。根据引用中提供的解决方法,当一个工程中有多个.c文件,并且这些文件中都有相同名称的main函数时,编译器会报错。因为在一个工程中只能有一个main函数。
解决这个问题的方法是注释掉其中一个文件中的main函数。这样做可以确保只有一个main函数被编译器识别和使用,从而避免重定义错误。
以下是一个示例,展示了如何解决这个问题:
```c
// File1.c
#include <stdio.h>
void function1()
{
printf("This is function 1\n");
}
// File2.c
#include <stdio.h>
void function2()
{
printf("This is function 2\n");
}
// Main.c
#include <stdio.h>
// 注释掉其中一个main函数
/*
int main()
{
function1();
return 0;
}
*/
int main()
{
function2();
return 0;
}
```
在上面的示例中,我们有三个.c文件:File1.c,File2.c和Main.c。最初,两个文件中都有一个main函数。通过注释掉其中一个main函数,我们解决了重定义错误。