[技术支持] MULTIPLE PUBLIC DEFINITIONS.

[复制链接]
 楼主| yorkbarney 发表于 2025-4-30 11:00 | 显示全部楼层 |阅读模式

如果在编程中出现(*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS.)这类错误,应该有俩种情况(本人遇到过俩种)一起看看吧。

1.错误示例如下

2.错误解释

该报错是指,多个公共定义,意思是,一个变量或者函数重复定义了

3.解决方法情况一:关于extern的使用

下面有一个具体例子:

这种情况就会报*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS.这个错误,原因是extern使用不当,当我们使用extern外部变量声明的时候,只需要对该变量进行定义就好了,不能对该变量进行初始化,通俗来说就是不能够修改它的初值,毕竟它不属于你这个文件。

情况二:函数名和变量名“重复”

我们继续看一个例子(也是我刚刚编程遇到的):

当时就很奇怪,也是找半天没发现哪重复定义了,后来仔细一想,我定义了一个变量时main_display,还有一个函数Main_Display(),这个报错显示的是SYMBOL:MAIN_DISPLAY,会不会是无法区分大小写,后来查了一下,发现是真的无法区分大小写,当时没改变量名只是想为了好区分函数里面的变量。后来改了个变量名字就解决了。如下图所示:

https://blog.csdn.net/2301_76605333/article/details/137235859


powerantone 发表于 2025-5-23 15:42 | 显示全部楼层
同一个变量或函数在多个源文件中被重复定义。
stormwind123 发表于 2025-5-23 15:43 | 显示全部楼层
变量重复定义用extern关键字或者用静态变量。
probedog 发表于 2025-5-23 19:00 | 显示全部楼层
如果函数很小且需要频繁调用,可以使用inline关键字在头文件中定义,但要确保在多个文件中使用时不会导致重复定义。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

39

主题

1511

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部