码迷,mamicode.com
首页 > 其他好文 > 详细

全局变量重复定义,fatal error LNK1169: 找到一个或多个多重定义的符号

时间:2017-03-30 17:14:35      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:代码   erro   UI   eval   编译器   ror   val   使用   char   

1.在GlobeValue.h中定义了一个变量:

char gl_UID[256];

2.在b.cpp和e.cpp中分别引用GlobeValue.h,并且使用gl_UID的全局变量,

结果出现:fatal error LNK1169: 找到一个或多个多重定义的符号 的错误。

错误的原因:因为在gl_UID全局变量是在GlobeValue.h中定义的,所以呢,每次包含一次这个头文件时,相当于又定义了一个这样的变量。

正确的代码书写方法是:
在GlobeValue.h中使用extern char gl_UID,申明这个变量,在b.cpp中定义这个变量char gl_UID[256],在e.cpp中不需要定义。这样,每次包含这个头文件,遇到extern时,编译器就知道在别处存在这个变量了,就不会重新定义了。

全局变量重复定义,fatal error LNK1169: 找到一个或多个多重定义的符号

标签:代码   erro   UI   eval   编译器   ror   val   使用   char   

原文地址:http://www.cnblogs.com/bayzhang/p/6646841.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!