当前位置:  技术问答>linux和unix

KDevelop下定义全局变量的问题?

    来源: 互联网  发布时间:2015-05-07

    本文导语:  有几个文件 //a.h #ifndef ... #define ... extern int g_iA; .. #endif //a.cpp a=0; //b.h #include "a.h" 然后c1.h,c2.h,c3.h都包含b.h,这3个类都是用到了g_iA。 d.h包含c1.h,c2.h,c3.h。 但是系统却报错说g_iA重定义.只要包含了(包括间接包含)...

有几个文件
//a.h
#ifndef ...
#define ...
extern int g_iA;
..
#endif

//a.cpp
a=0;

//b.h
#include "a.h"

然后c1.h,c2.h,c3.h都包含b.h,这3个类都是用到了g_iA。
d.h包含c1.h,c2.h,c3.h。
但是系统却报错说g_iA重定义.只要包含了(包括间接包含)a.h的头文件通通报错说:文件名.moc.cpp,行:multiple definition of 'g_iA'
请问这是怎么回事?

|
g++ -E moc.cpp看看有几个g_iA,都是哪里来的。

|
>>错了一点
>>//a.cpp
>>ing g_iA=0;

这个地方是不允许初始化的,kdevelop不知道什么时候运行此语句,同样,在其他的文件里面这样写也是不行的。
你最好在main()或者底层类的构造函数中这样写。

这不是多重定义的问题,kdevelop和vc一样,调试信息可信而不可全信。

|
to : fierygnu(va_list) 
  问题是这样的初始化在kdevelop里面是不允许的。要作只有定义申明和初始化都在一起,比如这样:
//**.cpp
int g_nUname=0;

    
 
 

您可能感兴趣的文章:

  • KDevelop中的全局变量的问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教:kdevelop安装问题!
  • fedora9中安装kdevelop中文的问题
  • 集成开发工具 KDevelop
  • 请教kdevelop的问题
  • KDevelop安装
  • Kdevelop下的一个问题
  • ubuntu 10.04 安装 kdevelop 出错
  • KDevelop如何与QT搭配使用?
  • 有人用过kdevelop
  • 关于KDevelop的问题
  • 为什么有了kdevelop大家还要用gcc?
  • 关于Linux下KDevelop开发几问.
  • 请问怎样在kdevelop中编译qt源代码?
  • 应用KDEVELOP开发,有什么好的入门书籍?
  • kdevelop调试过程如何接收输入
  • kdevelop 如何开发arm下的应用程序?
  • KDevelop的include目录设置
  • 使用KDevelop编译链接出错
  • kdevelop如何导入已有工程?
  • 请问如何将kdevelop设置成arm-linux编译器?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3