error LNK2005
error LNK2005 的一点拙见
很多写c++的都碰到过LNK2005的问题,而且是伴随着LNK1169出现。结合网上资料,出这个问题的可能性很多,但是这里我只讨论一种!
头文件中定义了全局变量或者函数
**注意:是定义,不是声明。**在.h文件中定义变量和函数本身没有问题。但是如果你的.h被2个及以上的cpp引用了。或者"另一个.h"引用了这个头文件,而"另一个.h"又被多个cpp引用。都会报这个问题,即使你在.h中加了
#pragma once 或者
#ifndef XXX
#define XXX
#endif 也是没用的
因为多个cpp在编译时都加入这个全局变量或者函数生成了obj,然后在多个obj链接时,就发生重定义了。
解决方法
- 如果你能保证该.h文件只在一个cpp中被include,那么你可以在该头文件中定义变量和函数;
- 只在xx.h中对变量和函数进行声明,将定义放在xx.cpp中,这样无论.h被引用多少次都没事了;
error LNK2005相关推荐
- ZZmsvcprt.lib(MSVCP90.dll) : error LNK2005:已经在libcpmtd.lib(xmutex.obj) 中定义
FROM: http://blog.csdn.net/sptoor/article/details/6203376 很久没有写程式设计入门知识的相关文章了,这篇文章要来谈谈程式库 (Library) ...
- error LNK2005: “找到一个或多个多重定义的符号” 已经在 xxxx.obj 中定义 的解决方法
error LNK2005: "找到一个或多个多重定义的符号" 已经在 xxxx.obj 中定义 的解决方法 参考文章: (1)error LNK2005: "找到一个或 ...
- msvcprt.lib(MSVCP90.dll) : error LNK2005:已经在libcpmtd.lib(xmutex.obj) 中定义
转载 很需要补充的知识. 可惜网络阅读一直不是强项. 目前实在有点看不进去. 先保存下来吧... 牛到连评论都是贼深奥滴! 很久没有写程式设计入门知识的相关文章了,这篇文章要来谈谈程式库 (Libra ...
- greta的问题及解决: LIBCMTD.lib(_wctype.obj) : error LNK2005: _iswspace already defined in xxx.obj...
greta,一个开源正则表达式模板库: http://research.microsoft.com/projects/greta/ 在debug unicode multithread dll的时候, ...
- [转]关于形如--error LNK2005: xxx 已经在 msvcrtd.lib ( MSVCR90D.dll ) 中定义--的问题分析解决...
关于形如--error LNK2005: xxx 已经在 msvcrtd.lib ( MSVCR90D.dll ) 中定义--的问题分析解决 转自:http://hi.baidu.com/qinfen ...
- 关于形如--error LNK2005: xxx 已经在 msvcrtd.lib ( MSVCR90D.dll ) 中定义--的问题分析解决...
转自:http://hi.baidu.com/qinfengxiaoyue/item/ff262ccfb53b4c2ba0b50a89 引自:http://blog.csdn.net/sptoor/a ...
- VS2010 VC++ 编译出错 ---error LNK2005: public: virtual __thiscall CMemDC::~CMemDC(void)
uafxcwd.lib(afxglobals.obj) error LNK2005: "public: virtual __thiscall CMemDC::~CMemDC(void)&qu ...
- error LNK2005: _DllMain@12 already defined的解决办法
用Visual C++编写DLL,如果在new project时选了MFC DLL,而后又想写成Regular DLL,即拥有自己的DllMain()入口函数,则在build时会遇到类似如下的link ...
- C++中的“error:LNK2005 已经在*.obj中定义”异常
C++中的"error:LNK2005 已经在*.obj中定义"异常问题 异常现象如下: C++中的"error:LNK2005 已经在*.obj中定义" ...
- error LNK2005 已经在***.obj中定义
编程中经常能遇到LNK2005错误--重复定义错误,其实LNK2005错误并不是一个很难解决的错误.弄清楚它形成的原因,就可以轻松解决它了. 造成LNK2005错误主要有以下几种情况: ...
最新文章
- 【深度学习理论】(1) 损失函数
- Python编程入门到实践 - 笔记( 4 章)
- 搭建kubernetes DashBoard
- linux覆盖和追加
- HDU6168 Numbers
- 线性方程组 python_线性方程组的表示 使用Python的线性代数
- 《C++ Primer 5th》笔记(7 / 19):类
- Linux导出函数控制,linux 下仅导出指定函数的方法
- Atomic原子类和Unsafe魔法类 详解
- source:读取文件 “/etc/profile” 时发生错误解决办法
- Java工具包工具类,java.util.concurrent 包下工具类的使用
- python简介pdf_Py之pdfkit:python的库之pdfkit简介、安装、使用方法详细攻略
- API3价格流将与Omen预测市场进行集成
- Hibernaate 详解
- 力扣-692 前k个高频单词
- ARM9学习笔记之——SDRAM实验
- 14Penrose广义逆(II)
- 用戶故事 vs 用例
- CentOS 、Linux 配置国内阿里源、yum源镜像
- CAD卸载/完美解决安装失败/如何彻底卸载清除干净cad各种残留注册表和文件的方法