error:LNK2005 已经在*.obj中定义的一种情况及解决办法

  • Post author:
  • Post category:其他


我的代码发生了这个错误,但是用了网上的#pragma once,#ifndef,extern都没能解决

经过仔细看代码发现,我的情况是这样的一个全局变量在一个头文件中定义,比如:head1.h中定义了全局变量int a = 10;

在一个类的头文件class.h中包含了头文件head1.h如:include “head1.h”

于是我将include “head1.h”从class.h中移到了class.cpp中,问题解决。

分析,因为class.cpp中include “class.h”,class.h中include “head1.h”,发现没,会造成head1.h的重复引用,虽然用pragma等也无法解决,移到class.cpp中,它生成obj文件时,只引用一次,问题解决。

有问题,大家共同讨论。



版权声明:本文为zhaoyong26原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。