解决QT报错 error MSB4023: 无法计算项元数据“%(FullPath)”

本文解决了一个在从SVN服务器下载QT项目代码并使用VS2017进行编译时出现的错误,通过修改qtrcc.targets文件中包含FullPath的ItemGroup节点,成功避免了编译错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我从公司SVN服务器下载QT项目的代码,编译时报错:

error MSB4023: 无法计算项元数据“%(FullPath)”。无法将项元数据“%(FullPath)”应用于路径“[0x7FF81100D3F0] ANOMALY: meaningless REX prefix used”。不支持给定路径的格式。

如图:

我遇到这个问题后,在百度、Bing、Google上搜索了很多遍,都没能找到真正的解决办法,我试过重装VS2017、重装QT,仍然没能解决,后来终于找到解决这个蛋疼问题的办法了。

根据报错,发现提示定位错误位置是

C:\Users\Administrator\AppData\Local\QtMsBuild\rcc\qtrcc.targets(127,9)

我们可以根据路径找到这个文件qtrcc.targets的127行

我们把这个包含FullPath的ItemGroup节点整体注释掉

再编译项目,成功了没有报错,问题解决了,希望能帮到大家!

 

<think>好的,我需要帮用户解决MSB6006编译错误的问题。用户遇到了“cmd.exe”退出代码1的情况。根据提供的引用,这个问题通常和文件访问权限、路径配置或者目设置有关。首先,我应该整理这些引用中的解决方法,分步骤呈现给用户。 首先,引用[2]提到错误前一句是“Could not create output file”,这提示输出文件无法创建。可能的原因包括文件被占用、权限不足或路径错误。需要检查输出目录是否有写入权限,确认没有其他程序占用生成的文件,比如杀毒软件可能阻止写入。 接下来,引用[3]、[4]、[5]涉及Qt目的问题,特别是环境变量QTDIR未正确设置或在VS中没有生效。解决方法包括手动在.vcxproj.user文件中设置QTDIR,或者将目转换为Qt目。用户可能需要检查Qt的配置,确保VS能正确识别Qt的路径。 然后,引用[1]和[3]都提到需要检查编译日志中的具体错误信息。用户应该查看错误发生前的输出,找到更详细的错误描述,比如文件缺失或路径错误。例如,引用[4]中的“Cannot open include file: 'QtCore/qglobal.h'”说明头文件路径不正确,需要正确配置Qt的包含路径。 另外,可能需要检查目属性中的路径设置,确认所有自定义生成步骤的命令是否正确,特别是涉及第三方工具或自定义脚本的情况。引用[5]提到右键目没有转换选,但通过其他方式解决了问题,可能涉及到目配置的调整或重新导入Qt插件。 最后,建议用户逐步排查:检查输出目录权限、确认依赖路径正确、检查环境变量和目设置、查看详细日志定位具体错误。如果问题依然存在,尝试清理解决方案并重新生成,或者重启VS以确保环境变量生效。</think>### MSB6006编译错误解决方案 MSB6006错误通常由文件访问问题、环境配置错误或生成步骤失败导致。以下是分步解决方案: #### 一、检查文件访问权限 1. **确认输出文件未被占用** - 查看错误信息前一句提示(如`Could not create output file`),定位无法生成的文件路径[^2] - 关闭占用文件的程序(如杀毒软件、IDE或其他进程) - 删除`bin`和`obj`文件夹后重新生成 2. **验证路径有效性** - 检查输出路径是否包含特殊字符(如空格、中文) - 确保路径长度不超过Windows限制(260字符) #### 二、Qt目特殊处理(如涉及Qt开发) 1. **配置Qt环境变量** - 手动在`.vcxproj.user`文件中添加QTDIR变量: ```xml <PropertyGroup> <QTDIR>C:\Qt\5.15.2\msvc2019</QTDIR> </PropertyGroup> ``` 需根据实际安装路径修改[^3][^4] - 重启Visual Studio使配置生效 2. **转换目类型** - 右键目选择`Convert to Qt Add-in Project`[^5] - 若选缺失,通过Qt VS Tools菜单重新加载目 #### 三、检查生成步骤 1. **验证自定义生成事件** - 打开目属性 → 生成事件 → 检查预/后期生成事件命令 - 测试命令在CMD中能否独立执行 2. **排查第三方工具链** - 检查涉及的外部工具路径(如make、moc编译器) - 确认工具版本与目要求匹配 #### 四、通用排查流程 ```mermaid graph TD A[出现MSB6006错误] --> B{查看错误上下文} B --> |识别具体错误描述| C[文件访问问题] B --> |识别具体错误描述| D[环境配置错误] C --> E[检查文件权限/路径] D --> F[验证环境变量/目设置] E --> G[清理解决方案后重试] F --> G G --> H{问题是否解决?} H --> |否| I[检查详细编译日志] I --> J[根据具体错误代码搜索解决方案] ``` #### 五、典型场景示例 - **场景1:缺少Qt头文件** 错误提示:`Cannot open include file: 'QtCore/qglobal.h'` 解决方案: 1. 在目属性 → C/C++ → 常规 → 附加包含目录添加`$(QTDIR)\include` 2. 确保资源文件正确包含`.qrc`文件[^4] - **场景2:环境变量未生效** 即使系统环境变量已设置QTDIR,仍需在VS目属性中显式声明路径[^3]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值