使用Eclipse CDT插件构建C++应用遇多类报错如何解决?
Eclipse CDT Windows环境构建C++项目三类报错解决方案
报错1:Nothing to be build for Project
针对该报错的有效解决方案如下:
- 校验工具链配置:右键项目选择
Properties→C/C++ Build→Tool Chain Editor,确认已选中本地安装的编译工具链(如MinGW、MSVC),未选择不存在的工具链版本 - 手动指定构建目标:右键项目选择
Build Targets→Create,依次添加all、clean两个构建目标,先执行clean清理旧构建产物,再执行all全量构建 - 确认目录权限:检查项目所在文件夹未设置只读权限,Eclipse进程拥有文件夹的完整读写权限
报错2:D8037: cannot create temporary il files
该报错为MSVC编译器专属的临时文件写入失败问题,并非系统用户临时目录的问题,可按以下步骤修复:
- 配置MSVC环境变量:右键项目选择
Properties→C/C++ Build→Environment,添加3个环境变量(路径根据本地VS版本调整,示例为VS2022社区版):- 变量名
VSINSTALLDIR,值为C:\Program Files\Microsoft Visual Studio\2022\Community\ - 变量名
VCINSTALLDIR,值为C:\Program Files\Microsoft Visual Studio\2022\Community\VC\ - 变量名
Path,在原有值末尾追加C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\<本地MSVC版本号>\bin\Hostx64\x64\
- 变量名
- 临时关闭安全软件的实时保护测试,部分安全软件会拦截MSVC创建IL临时文件的操作
- 无需使用MSVC的用户可直接在工具链编辑器中切换为MinGW,可直接规避该依赖问题
报错3:RC2135: file not found: project.exe.embed.manifest
该报错为资源编译器执行时,链接步骤未生成对应的嵌入清单文件,属于构建顺序异常导致的问题,修复步骤如下:
- 关闭自动嵌入清单配置:右键项目选择
Properties→C/C++ Build→Settings→Tool Settings→Manifest Tool→Input and Output,取消勾选Embed Manifest - 调整构建步骤顺序:进入
C/C++ Build→Settings→Build Steps,确保资源编译步骤的执行顺序在链接步骤之前 - 若仍报错,可手动创建基础清单文件放置到报错提示的对应目录下,文件命名为
project.exe.embed.manifest,内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly>
- 所有配置修改完成后,执行项目
Clean操作再重新全量构建即可生效
内容的提问来源于stack exchange,提问作者Asha
相关产品推荐
相关产品推荐

