C++编译时引起Lnk2005错误的几种情况与解决办法
2013-09-29 14:23
429 查看
(1)重复定义全局变量。解决办法,在单个cpp文件中定义变量如 int g_iCounter,其它位置使用此变量时,用extern关键字进行修饰,如extern int g_iCounter。
(2)头文件重复包含。解决办法,在头文件中加入相应宏:
#ifndef MY_H_FILE //如果没有定义这个宏
#define MY_H_FILE //定义这个宏
……. //头文件主体内容
…….
#endif
也可以使用预编译来做,在头文件中加入:
#pragma once
//头文件主体
(3)第三方库冲突。如C运行期函数库和MFC的库,需要通过设置编译环境来解决。
(4)函数体放在了头文件中。建立*.cpp文件用于保存函数体可避免此问题,需要注意的是,如果在编译环境中设置了进行预编译,那么在该cpp文件头上需要加上一条#include
"stdafx.h"。否则会报错误:“fatal error C1010:unexpected end of file while looking for precompiled header directive”。
(2)头文件重复包含。解决办法,在头文件中加入相应宏:
#ifndef MY_H_FILE //如果没有定义这个宏
#define MY_H_FILE //定义这个宏
……. //头文件主体内容
…….
#endif
也可以使用预编译来做,在头文件中加入:
#pragma once
//头文件主体
(3)第三方库冲突。如C运行期函数库和MFC的库,需要通过设置编译环境来解决。
(4)函数体放在了头文件中。建立*.cpp文件用于保存函数体可避免此问题,需要注意的是,如果在编译环境中设置了进行预编译,那么在该cpp文件头上需要加上一条#include
"stdafx.h"。否则会报错误:“fatal error C1010:unexpected end of file while looking for precompiled header directive”。
相关文章推荐
- VC++编译代码出现LNK2005错误的一种情况的解决
- SQL(Microsoft SQL Server 2005)几种登陆不成功错误解决办法
- C++常见编译/链接错误及其解决办法
- pro*c/c++编译错误 ” error: sqlca.h: No such file or directory “ 的解决办法
- 【网络SOCKET编程】DEV-C/C++ 编译时出现undefined reference to `WSAStartup@8'等错误解决办法
- 两个C++编译错误及解决办法--does not name a type和field `XX' has incomplete type
- 两个C++编译错误及解决办法--does not name a type和field `XX' has incomplete type
- 【转】 C++常见编译/链接错误及其解决办法
- Vs.net 2005编译或者运行时报“没有找到MSVCR80D.dll...”错误的解决办法
- C++编译错误及解决办法
- libcmtd.lib(crt0dat.obj) : error LNK2005: _exit already defined in msvcrtd.lib(MSVCRTD.dll) 编译错误解决方法
- 两个C++编译错误及解决办法--does not name a type和field `XX' has incomplete type
- Mac下使用Eclipse编译C/C++文件出现 launch failed, binary not found 错误的解决办法
- 在 4000 MS VS 2005中 编译PHP时解决“不能分配常量大小为 0 的数组”错误的临时办法
- Mac下使用Eclipse编译C/C++文件出现 launch failed, binary not found 错误的解决办法
- LNK2005 连接错误解决办法
- 用MFC编程编译时出现LNK2019的错误,解决办法
- 在 MS VS 2005中 编译PHP时解决“不能分配常量大小为 0 的数组”错误的临时办法
- C++编译全攻略-编译器处理及LNK错误的解决方法(ZZ)
- libcmtd.lib(crt0dat.obj) : error LNK2005: _exit already defined in msvcrtd.lib(MSVCRTD.dll) 编译错误解决方法