栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++编译报错`XXX‘被多次定义总结;未定义的引用等等

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++编译报错`XXX‘被多次定义总结;未定义的引用等等

1. C++编译报错`XXX’被多次定义总结

报错原因:

诸如类似的报错都是因为可能在两个或者多个.cpp文件/.h文件定义该全局变量,属于重复定义问题

解决办法是:

在VScode全局搜索该变量,只能有一处是正常全部变量定义,其他的都定义成extern外部变量。

不要把全局方法的定义放在头文件里!!!!

去每一个文件里改掉重新编译就好

其他
可以把所有的全局变量放入一个头文件 global.h (名字随意起,但要加条件编译)中,每一个变量前面加extern,声明一下这些变量将在其它文件中定义。 然后建立一个和头文件名字对应的.c / .cpp文件 如global.c。在里面声明所有的全局变量。

2. 对‘xxx’未定义的引用

原因:
出现这种情况的原因,主要是C/C++编译为obj文件的时候并不需要函数的具体实现,只要有函数的原型即可。但是在链接为可执行文件的时候就必须要具体的实现了。如果错误是未声明的引用,那就是找不到函数的原型,解决办法这里就不细致说了,通常是相关的头文件未包含。
解决办法是:
在CMakeLists.txt的add_executable()中添加相应的.cpp文件,如:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/971233.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号