重复包含定义 导致未定义类型不识别错误

 2023-09-05 阅读 29 评论 0

摘要:错误提示: f:\vs2010projects\combine\combine\func.h(9): error C2011: “func”:“class”类型重定义1> f:\vs2010projects\combine\combine\func.h(9) : 参见“func”的声明1>f:\vs2010projects\combine\combine\com.cpp(21): error C2027: 使用了未定义类型“

错误提示:

f:\vs2010projects\combine\combine\func.h(9): error C2011: “func”:“class”类型重定义
1> f:\vs2010projects\combine\combine\func.h(9) : 参见“func”的声明
1>f:\vs2010projects\combine\combine\com.cpp(21): error C2027: 使用了未定义类型“func”
1> f:\vs2010projects\combine\combine\func.h(9) : 参见“func”的声明
1>f:\vs2010projects\combine\combine\com.cpp(21): error C2228: “.setindex”的左边必须有类/结构/联合
1>f:\vs2010projects\combine\combine\com.cpp(22): error C2027: 使用了未定义类型“func”
1> f:\vs2010projects\combine\combine\func.h(9) : 参见“func”的声明
1>f:\vs2010projects\combine\combine\com.cpp(22): error C2228: “.setxx”的左边必须有类/结构/联合
1>f:\vs2010projects\combine\combine\com.cpp(23): error C2027: 使用了未定义类型“func”
1> f:\vs2010projects\combine\combine\func.h(9) : 参见“func”的声明
1>f:\vs2010projects\combine\combine\com.cpp(23): error C2228: “.setyy”的左边必须有类/结构/联合
1>f:\vs2010projects\combine\combine\com.cpp(24): error C2027: 使用了未定义类型“func”
1> f:\vs2010projects\combine\combine\func.h(9) : 参见“func”的声明
1>f:\vs2010projects\combine\combine\com.cpp(24): error C2228: “.setwidth”的左边必须有类/结构/联合
1>f:\vs2010projects\combine\combine\com.cpp(25): error C2027: 使用了未定义类型“func”
1> f:\vs2010projects\combine\combine\func.h(9) : 参见“func”的声明
1>f:\vs2010projects\combine\combine\com.cpp(25): error C2228: “.setheight”的左边必须有类/结构/联合
1>f:\vs2010projects\combine\combine\com.cpp(26): error C2027: 使用了未定义类型“func”
1> f:\vs2010projects\combine\combine\func.h(9) : 参见“func”的声明
1>f:\vs2010projects\combine\combine\com.cpp(26): error C2228: “.init”的左边必须有类/结构/联合

 

解决方法:

仔细查找,看看是否多次包含了该函数以及变量的定义:

#include <cv.h>
#include <highgui.h>
#include <iostream>
#include "func.h"
#include "road.h"

查找后发现#include "func.h"重复包含,注释掉即可

 

注意:

1,调用较多类或者库文件时,容易发生重复包含,导致重定义

 

2,有时即使项目文件夹下包含了h文件和cpp文件,但是由于没有添加

到工程目录中,也可能导致不识别函数。将cpp添加即可解决。

以下是错误提示:(真是让人无语)

Page1.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall func::init(int,int,int)" (?init@func@@QAEXHHH@Z),该符号在函数 "public: void __thiscall CPage1::OnBnClickedButton1(void)" (?OnBnClickedButton1@CPage1@@QAEXXZ) 中被引用
1>Page1.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall func::func(void)" (??0func@@QAE@XZ),该符号在函数 "public: __thiscall road::road(void)" (??0road@@QAE@XZ) 中被引用
1>C:\Users\HYZ\Desktop\dll文件库\tab111.exe : fatal error LNK1120: 2 个无法解析的外部命令

 

转载于:https://www.cnblogs.com/hyz5525/p/4911642.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/1341.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息