C++ error:LNK2005 已经在*.obj中定义
2016-06-07 23:01
441 查看
一般在编程有多个CPP及头文件时有可能出现以下错误:
error LNK2005: "void __cdecl test2(void)" (?test2@@YAXXZ) 已经在 源2.obj 中定义
fatal error LNK1169: 找到一个或多个多重定义的符号
问题在于没有把握清楚头文件的作用以及CPP之间函数与变量命名方式的规则:
头文件的内容:
★ 类型(struct-第7章)及类(class-第8章)的声明
★ 函数的声明
★ inline函数的定义与实现
★ 符号常量的定义及常变量的定义
★ 全局变量的extern声明
★ 其它需要的头文件
cpp之间的全局变量不能同名,所以不能在头文件中定义一个变量后在两个cpp中都包含头文件,否则会报上述错误。解决方法是加const 限定,另外不同cpp之间的函数必须要有区分(函数名,参数类型)否则也会报错。要调用cpp之间变量或函数必须加申明。
error LNK2005: "void __cdecl test2(void)" (?test2@@YAXXZ) 已经在 源2.obj 中定义
fatal error LNK1169: 找到一个或多个多重定义的符号
问题在于没有把握清楚头文件的作用以及CPP之间函数与变量命名方式的规则:
头文件的内容:
★ 类型(struct-第7章)及类(class-第8章)的声明
★ 函数的声明
★ inline函数的定义与实现
★ 符号常量的定义及常变量的定义
★ 全局变量的extern声明
★ 其它需要的头文件
cpp之间的全局变量不能同名,所以不能在头文件中定义一个变量后在两个cpp中都包含头文件,否则会报上述错误。解决方法是加const 限定,另外不同cpp之间的函数必须要有区分(函数名,参数类型)否则也会报错。要调用cpp之间变量或函数必须加申明。
相关文章推荐
- Leetcode_c++: Maximal Rectangle (085)
- c++:工资类
- Rectangle Area
- 那些年C语言老师没有教给你的东西(一)
- 第15周阅读程序(2)
- 第15周阅读程序(1)
- Leetcode_c++: Largest Rectangle in Histogram (084)
- 【学习C++】C++ Primer Plus (第六版)第十三章编程练习1-4
- c++作业7
- 用C语言绘制一条标准的余弦曲线
- 用C语言绘制一条标准的余弦曲线
- 用C语言绘制一条标准的余弦曲线
- 第14周项目2--两个成员的类模板(2)
- C/C++ 输出乘法口诀表
- C/C++ RPG游戏
- leetcode 290 Word Pattern C++
- C/C++ 水仙花数
- C/C++ 完全数
- C/C++ 中缀表达式转换成后缀表达式并求值
- 内联函数和宏定义的区别