精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
服务方向
联系方式
锐英源精品原创,禁止转载和任何形式的非法内容使用,违者必究
最近移植一套源代码,源代码文件很多,频繁添加和排除了源代码文件,出现了标题对应的编译错误:
E:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include\memory(3119,1): error C2027: 使用了未定义类型
memory头文件和STL有关,遇到STL错误更难解决:
按照以前的经验,在输出里找到编译错误文件,把类型对应的头文件重新包含下#include下,再次重新编译代码,问题解决。
error C2027在代码量少时,类型关系简单时,容易找到线索,哪个类型没有,对应类型的头文件包含下,就可以解决。在有大量代码和STL涉及情况下,处理要小心。另外遇到类似pragma once效果的处理时,也有可能遇到error C2027。面向对象编译器在能识别类型时才能编译通过,这就像面向过程编译时,函数没有函数体编译通过不了一样。
本次情况主要是error C2027和memory结合,比较困惑,但是解决问题还是要看到本质,把握本质就好解决问题。