0
点赞
收藏
分享

微信扫一扫

C++关于头文件中定义变量出现LNK2005

正义的杰克船长 2022-04-06 阅读 122
c++

 

LNK后总会跟着LNK1169;

在头文件中对静态变量声明在单个cpp文件中使用是没有问题的,但是对于多个cpp文件就会报错LNK2005.原因其实就是在头文件中被定义了。

因为多创建了个cpp,一开始以为是没有#ifndef,但是它和#pragma once在作用上是一样的,只是针对同一份文件不被包含两次。

解决办法就是把变量定义在cpp中,声明全局变量不能像上面的“int aa”,它也相当于被定义,需要加上extern;

所以头文件用来声明,cpp用来定义可以避免这样的问题

举报

相关推荐

0 条评论