C++并不是一个实现整体结构比较优良的语言。在写代码的过程中,很多的精力并不是在程序的结构和算法上,而是面对各种奇葩的错误问题。
多文件的C++代码经常容易造成链接错误,折腾几个晚上,将常见的原因总结如下:
1.未按顺序引用文件
2.未引入编译所需的连接库即lib文件
3.未使用#pragma once造成文件被多次编译
4.工程内函数或变量不存在
1,只声明没定义。
2,声明和定义的函数参数列表不一致。
3,函数或变量拼写错误。
5.函数或变量所在的文件没有被正确编译
1,所在的文件没有被添加到工程中。
2,函数或变量的定义放在头文件,但是该头文件并没有被任何一个cpp文件引用,注意:这种情况只会出现入口函数的链接错误。
4,预处理宏或条件编译导致函数或变量没有被正确编译。
5,如果是内联(inline)函数,必须在需要用它的每个编译单位里定义,因此定义只能放在头文件中,不可以放在CPP文件中。
6.模板类的定义和实现需都放在头文件中
若以上仍没有解决问题,可以参考msdn官方文档