fpiaopiao

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

今天在写代码时出现了这个错误,网上的解决方法都不合适

我的代码是这样,在一个cpp里申明了一个常量

//data.cpp
const int ROUND = 3;

然后在一个头文件里申明为全局变量

//PData.h
extern const int ROUND;

在下级的cpp文件里包含此头文件,按道理就可以将ROUND变量当做全局变量来用

//sub.cpp
#inclide "PData.h"
int main{
    int a = ROUND;
    return 0;        
}

但是编译器报错:LNK2001 无法解析的外部符号 "int const ROUND"

我想了一下,这个应该是常量会被定义到常量区,所以这种方法定义的静态全局不能找到这个变量

所以把常量去掉:

//data.cpp
int ROUND = 3;


//PData.h
extern int ROUND;

  

问题解决

posted on 2023-03-03 23:02  _fanfan  阅读(28)  评论(0编辑  收藏  举报