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


    错误提示:

    f:vs2010projectscombinecombinefunc.h(9): error C2011: “func”:“class”类型重定义
    1> f:vs2010projectscombinecombinefunc.h(9) : 参见“func”的声明
    1>f:vs2010projectscombinecombinecom.cpp(21): error C2027: 使用了未定义类型“func”
    1> f:vs2010projectscombinecombinefunc.h(9) : 参见“func”的声明
    1>f:vs2010projectscombinecombinecom.cpp(21): error C2228: “.setindex”的左边必须有类/结构/联合
    1>f:vs2010projectscombinecombinecom.cpp(22): error C2027: 使用了未定义类型“func”
    1> f:vs2010projectscombinecombinefunc.h(9) : 参见“func”的声明
    1>f:vs2010projectscombinecombinecom.cpp(22): error C2228: “.setxx”的左边必须有类/结构/联合
    1>f:vs2010projectscombinecombinecom.cpp(23): error C2027: 使用了未定义类型“func”
    1> f:vs2010projectscombinecombinefunc.h(9) : 参见“func”的声明
    1>f:vs2010projectscombinecombinecom.cpp(23): error C2228: “.setyy”的左边必须有类/结构/联合
    1>f:vs2010projectscombinecombinecom.cpp(24): error C2027: 使用了未定义类型“func”
    1> f:vs2010projectscombinecombinefunc.h(9) : 参见“func”的声明
    1>f:vs2010projectscombinecombinecom.cpp(24): error C2228: “.setwidth”的左边必须有类/结构/联合
    1>f:vs2010projectscombinecombinecom.cpp(25): error C2027: 使用了未定义类型“func”
    1> f:vs2010projectscombinecombinefunc.h(9) : 参见“func”的声明
    1>f:vs2010projectscombinecombinecom.cpp(25): error C2228: “.setheight”的左边必须有类/结构/联合
    1>f:vs2010projectscombinecombinecom.cpp(26): error C2027: 使用了未定义类型“func”
    1> f:vs2010projectscombinecombinefunc.h(9) : 参见“func”的声明
    1>f:vs2010projectscombinecombinecom.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:UsersHYZDesktopdll文件库 ab111.exe : fatal error LNK1120: 2 个无法解析的外部命令

  • 相关阅读:
    游戏与微博的结合,一个微博后台与前端的设计(基于mysql)。(一)
    UDK 学习点滴 (不断更新)
    多语言版本与UI的展现问题
    用dx11检查你的硬件设备中有几个适配器(adapter)
    多重采样与dx11检查硬件多重采样能力的API
    不均匀点香求时间的问题解
    图片内包含文本制作方法
    vim 搜索 向上 向下 取消高亮
    解决Ucenter 头像上传小收获
    不知道是什么意思
  • 原文地址:https://www.cnblogs.com/hyz5525/p/4911642.html
Copyright © 2020-2023  润新知