找到一个或多个多重定义的符号
2018-02-12 09:41
369 查看
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK1169 找到一个或多个多重定义的符号 hik_test
原因:结构体定义在头文件,如果定义在cpp文件,这个异常就没有了
struct BufData
{
int size;
char sendbuf[1500];
}data_send;
下面是网上给的方法:
申明全局变量,全局函数一定要在cpp中申明其他类引用该全局变量就include该cpp的h文件然后extern一下就好了否则容易出现该重复定义错误这个"容易"是如何解释的呢?例如A.h中如果申明了全局变量int Global;在B.h中include "A.h" extern int Global;则你include A.h相当于把A.h中全局变量的申明也include进来了,编译器就会认为是重复定义所以全局变量和函数申明一定要在cpp中 当.h文件里有函数实现时
VS2005编译器报此错误,
解决方法
1.在.h里的函数声明前加 inline
2.在项目->属性->链接器->命令行->附加选项中加 /force
错误 LNK1169 找到一个或多个多重定义的符号 hik_test
原因:结构体定义在头文件,如果定义在cpp文件,这个异常就没有了
struct BufData
{
int size;
char sendbuf[1500];
}data_send;
下面是网上给的方法:
申明全局变量,全局函数一定要在cpp中申明其他类引用该全局变量就include该cpp的h文件然后extern一下就好了否则容易出现该重复定义错误这个"容易"是如何解释的呢?例如A.h中如果申明了全局变量int Global;在B.h中include "A.h" extern int Global;则你include A.h相当于把A.h中全局变量的申明也include进来了,编译器就会认为是重复定义所以全局变量和函数申明一定要在cpp中 当.h文件里有函数实现时
VS2005编译器报此错误,
解决方法
1.在.h里的函数声明前加 inline
2.在项目->属性->链接器->命令行->附加选项中加 /force
相关文章推荐
- “error LNK1169: 找到一个或多个多重定义的符号”的解决方法
- fatal error LNK1169: 找到一个或多个多重定义的符号[转]
- fatal error LNK1169: 找到一个或多个多重定义的符号
- xxx.dll: fatal error LNK1169:找到一个或多个重定义的符号
- error LNK1169: 找到一个或多个多重定义的符号
- “error LNK1169: 找到一个或多个多重定义的符号”的解决方法
- fatal error LNK1169: 找到一个或多个多重定义的符号
- fatal error LNK1169: 找到一个或多个多重定义的符号
- error LNK1169: 找到一个或多个多重定义的符号
- 使用vs编译出现 ”error LNK1169: 找到一个或多个多重定义的符号“的错误
- fatal error LNK1169: 找到一个或多个多重定义的符号
- error LNK1169 : 找到一个或多个重定义的符号
- class std::basic_string 找到一个或多个多重定义的符号
- 找到一个或多个多重定义的符号”产生的原因
- “DllMain 已经在 MSVCRTD.lib(dllmain.obj) 中定义以及找到一个或多个多重定义的符号”错误的解决方法
- fatal error LNK1169: 找到一个或多个多重定义的符号.
- fatal error LNK1169: 找到一个或多个多重定义的符号
- fatal error LNK1169: 找到一个或多个多重定义的符号
- vc 找到一个或多个多重定义的符号
- fatal error LNK1169:找到一个或多个重定义的符号