今天在写代码时出现了这个错误,网上的解决方法都不合适
我的代码是这样,在一个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; |
问题解决
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现