
tinyxml2.cpp 报错 C1010意外的文件结尾忘记 #include StdAfx.h报错原因fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include StdAfx.h”?这是VC6.0 / VS MFC 项目预编译头StdAfx.h经典报错。 MFC 项目开启了预编译头 (PCH)要求每个.cpp第一行必须写#include StdAfx.h。tinyxml2.cpp第三方源码没有包含这个头文件编译直接报 C1010。注意tinyxml2.h是头文件没事报错出在tinyxml2.cpp。两种解决办法选其中一种推荐方案 2不修改第三方源码方案 1修改 tinyxml2.cpp不推荐升级 tinyxml 会被覆盖打开tinyxml2.cpp文件最顶部第一行加上#include StdAfx.h // 后面才是tinyxml2原本全部代码 #include tinyxml2.h ......缺点以后更新 tinyxml 源码这个修改会丢失又重现报错。✅方案 2给 tinyxml2.cpp 单独关闭预编译头【最优不改动第三方代码】在 VS 解决方案资源管理器右键tinyxml2.cpp→【属性】C/C →【预编译头】预编译头选择「不使用预编译头」确定重新编译。只单独设置这一个 cpp 文件其他 MFC 源码继续使用 StdAfx 预编译头互不影响。tinyxml 是第三方库不需要 MFC 预编译。常见踩坑补充❌不要给 tinyxml2.h 设置不使用预编译头只针对 cpp 文件设置。如果你是 VC6.0右键文件 → 设置 → C/C → 预编译头 → 选择「不使用预编译头」。如果报cannot open StdAfx.h说明你把#include StdAfx.h加到 tinyxml2.cpp但是这个 cpp 不属于 MFC 模块找不到这个头这时候必须用方案 2。tinyxml2 使用注意xmlns 命名空间读取问题tinyxml2 原生不直接支持xmlns:前缀遍历属性时要自己处理前缀截取。快速复盘逻辑MFC 项目默认规则所有 cpp 第一行必须是#include StdAfx.h。 第三方开源 cpp 没有这个头两种出路强制加 StdAfx.h 到源码告诉编译器这个文件不走预编译头推荐。