C++编译时报错:无法解析外部符号
2018-03-05 20:57
225 查看
在今天的编码中,主要是遇到了以下几点原因:
1、如果编写的是模板代码,在main.cpp中,需要将头文件和其实现文件都加入到头文件中;在该博客中有更为详细的解释:点击打开链接
原因在于模板类和模板函数在使用的时候才会被实例化。
当模板被使用时,编译器需要函数所有的实现代码,
来用合适的类型(模板参数)去构建正确的函数。
但是如果将函数实现在单独的源文件中,这些文件是不可见的,因而会出错。
2、类成员中的static成员需要在类外初始化,如果在类外初始化,则违反了静态成员只属于类的全体成员这一约定;
(第一次使用博客,后续还会增加完善)
1、如果编写的是模板代码,在main.cpp中,需要将头文件和其实现文件都加入到头文件中;在该博客中有更为详细的解释:点击打开链接
原因在于模板类和模板函数在使用的时候才会被实例化。
当模板被使用时,编译器需要函数所有的实现代码,
来用合适的类型(模板参数)去构建正确的函数。
但是如果将函数实现在单独的源文件中,这些文件是不可见的,因而会出错。
2、类成员中的static成员需要在类外初始化,如果在类外初始化,则违反了静态成员只属于类的全体成员这一约定;
(第一次使用博客,后续还会增加完善)
相关文章推荐
- C++的error LNK2019: 无法解析的外部符号编译错误
- vs中C++工程加入c文件编译出现无法解析的外部符号
- C++中模板类使用友元模板函数 和友员非模版函数!使用不当出现编译错误:无法解析的外部符号…
- 关于vs2010 C++编译链接总是出现“LNK:2019 无法解析的外部符号”的问题
- 有关C++模板(template)的编译错误“error LNK2019: 无法解析的外部符号”的分析
- C++工程编译之“error LNK2001: 无法解析的外部符号”
- 有关C++模板(template)的编译错误“error LNK2019: 无法解析的外部符号”的分析
- 有关C++模板(template)的编译错误“error LNK2019: 无法解析的外部符号”的分析
- c++模板分离式编译时无法解析外部符号
- c++模板分离式编译时无法解析外部符号
- c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法
- vs2015编译ffmpeg 出现错误rtmp.lib(rtmp.obj) : error LNK2001: 无法解析的外部符号 ___iob_func
- SiftGPU:编译SiftGPU出现问题-无法解析的外部符号 glutInit
- 在C++控制台项目中使用C工程代码时的注意,避免出现error LNK2019: 无法解析的外部符号
- VTK编译时出错,无法解析的外部符号
- c++ 链接mysql:error LNK2019: 无法解析的外部符号
- C++无法解析的外部符号的3种可能
- 编译时出现错误:无法解析的外部符号
- C++:无法解析的外部符号问题 与 头文件包含注意要点
- c++ 链接mysql:error LNK2019: 无法解析的外部符号