fpiaopiao

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  7 随笔 :: 0 文章 :: 0 评论 :: 661 阅读

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

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

1
2
//data.cpp
const int ROUND = 3;

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

1
2
//PData.h
extern const int ROUND;

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

1
2
3
4
5
6
//sub.cpp
#inclide "PData.h"
int main{
    int a = ROUND;
    return 0;       
}

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

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

所以把常量去掉:

1
2
3
4
5
6
//data.cpp
int ROUND = 3;
 
 
//PData.h
extern int ROUND;

  

问题解决

posted on   _fanfan  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示