Rcc'ing pllwzd.qrc..找不到.qrc文件错误

本文介绍了解决VC编译期间遇到QRC文件问题的方法。建议先运行工程再进行编译,并尝试编译对应的.qrc文件转换为cpp格式。

先运行工程,

而后在编译就过去了。

原因可能出在vc对qrc的寻找上。

可以尝试编译.qrc对应的 cpp试试

<think> 我们面对的问题是在执行预生成事件时出现两个主要问题: 1. Rcc'ing iMediaGo.qrc 提示系统不到指定路径。 2. 项目报错 PRJ0019 和警告 PRJ0018,指出未到 $(QTDIR) 环境变量。 根据错误信息,我们可以分析: 错误 PRJ0018 和 PRJ0019 通常与 Visual Studio 项目中的自定义生成事件有关。具体来说: - PRJ0018: 表示无法到自定义生成事件中使用的环境变量(在这里是 $(QTDIR))。 - PRJ0019: 表示由于不到环境变量而导致自定义生成事件无法执行。 因此,核心问题在于环境变量 $(QTDIR) 未定义。在Qt项目中,QTDIR 通常指向Qt的安装根目录。如果这个环境变量没有设置,那么预生成事件(例如调用rcc.exe)就会失败,因为rcc.exe位于Qt的bin目录下。 另外,错误信息“系统不到指定路径”可能是由于 $(QTDIR) 未定义,导致rcc命令的路径无法解析。 解决方案: 步骤1:设置 QTDIR 环境变量 - 需要确定Qt的安装路径。例如,如果Qt安装在 C:\Qt\5.15.2\msvc2019_64,那么 QTDIR 应该设置为该路径。 - 设置环境变量: * 打开系统属性 -> 高级 -> 环境变量。 * 在系统变量中,点击“新建”,变量名输入“QTDIR”,变量值输入Qt的安装路径(如 C:\Qt\5.15.2\msvc2019_64)。 * 注意:如果使用多个Qt版本,确保QTDIR指向当前项目使用的Qt版本。 步骤2:将Qt的bin目录添加到PATH环境变量 - 为了确保系统能够到rcc.exe和其他Qt工具,建议将Qt的bin目录(例如 %QTDIR%\bin)添加到系统的PATH环境变量中。 - 同样在环境变量设置中,到Path变量,编辑,添加新的一项:%QTDIR%\bin。 步骤3:重启Visual Studio - 环境变量设置后,需要重启Visual Studio,以便它能够获取到新的环境变量。 步骤4:在项目设置中检查自定义生成事件 - 打开项目属性,到“生成事件” -> “预生成事件”。 - 检查预生成事件的命令行,确保它使用 $(QTDIR) 来定位rcc.exe。例如: "$(QTDIR)\bin\rcc.exe" -binary "iMediaGo.qrc" -o ".\GeneratedFiles\qrc_iMediaGo.cpp" - 注意:路径中的引号用于处理路径中可能存在的空格。 步骤5:确保qrc文件路径正确 - 检查项目目录中是否存在iMediaGo.qrc文件,并且相对路径与预生成事件中指定的路径一致。 步骤6:如果使用CMake - 如果项目是使用CMake构建,那么可能需要确保在CMakeLists.txt中正确设置了Qt的路径。例如,使用`set(CMAKE_PREFIX_PATH "C:/Qt/5.15.2/msvc2019_64")`来指定Qt路径。 - 另外,在CMake中,通常使用`qt5_add_resources`命令来添加资源文件,这样CMake会自动处理rcc的调用,而不需要手动编写预生成事件。 步骤7:如果问题仍然存在 - 尝试在命令行中直接运行预生成事件中的命令(替换$(QTDIR)为实际路径),看是否能够成功,以验证命令和路径是否正确。 - 检查Visual Studio项目属性中是否覆盖了环境变量(例如在项目属性->配置属性->生成事件->环境中有自定义设置)。 注意事项: - 确保使用的Qt版本与项目要求的版本一致。 - 如果项目是多配置的(如Debug和Release),确保每个配置都正确。 通过以上步骤,应该能够解决 $(QTDIR) 未定义的问题,进而解决预生成事件执行失败的问题。 引用说明: - 在设置环境变量和路径时,参考了Qt官方文档中关于环境变量设置的常规做法[^1]。 - 关于Visual Studio生成事件的错误处理,参考了Microsoft文档中关于PRJ0018和PRJ0019错误的说明[^2]。 §§相关问题§§ 1. 如何检查Windows系统中是否设置了某个环境变量? 2. 在Visual Studio中如何设置项目特定的环境变量? 3. Qt的资源系统(.qrc文件)是如何工作的? 4. CMake中如何自动处理Qt的资源文件.qrc)? </think>### 解决预生成事件中Rcc'ing报错和QTDIR环境变量问题的方法 #### 问题分析 1. **PRJ0018警告**:表示不到`$(QTDIR)`环境变量,这是Qt的核心路径变量 2. **PRJ0019错误**:因环境变量缺失导致预生成事件执行失败 3. **Rcc'ing报错**:因Qt资源编译器(rcc)路径解析失败导致系统不到路径 --- ### 解决方案步骤 #### 1. 配置QTDIR环境变量 **方法一:永久配置(推荐)** ```bat :: Windows系统设置 setx QTDIR "C:\Qt\6.6.0\msvc2019_64" # 替换为实际Qt安装路径 setx PATH "%PATH%;%QTDIR%\bin" ``` **方法二:临时配置(VS开发人员命令提示符)** ```bat :: 在VS命令行中执行 set QTDIR=C:\Qt\6.6.0\msvc2019_64 set PATH=%PATH%;%QTDIR%\bin ``` #### 2. 验证环境变量配置 ```bat :: 检查变量是否生效 echo %QTDIR% rcc --version # 应显示Qt资源编译器版本 ``` #### 3. 修改项目配置(Visual Studio) 1. 打开项目属性 → **生成事件** → **预生成事件** 2. 修改rcc命令为**绝对路径**: ```bat "%QTDIR%\bin\rcc.exe" -binary "iMediaGo.qrc" -o "生成路径\qrc_iMediaGo.cpp" ``` 3. 在**VC++目录**中添加包含路径: ``` $(QTDIR)\include;$(QTDIR)\lib ``` #### 4. CMake项目特殊配置 在`CMakeLists.txt`中添加: ```cmake # 指定Qt路径[^2] set(CMAKE_PREFIX_PATH "C:/Qt/6.6.0/msvc2019_64") # 自动处理资源文件 qt_add_resources(RCC_SOURCES iMediaGo.qrc) target_sources(your_target PRIVATE ${RCC_SOURCES}) ``` --- ### 其他排查建议 1. **检查.qrc文件路径**: - 确认`iMediaGo.qrc`文件存在于项目目录 - 在预生成事件中使用**相对路径**时需基于`$(ProjectDir)` 2. **权限问题**: ```bat :: 以管理员身份运行VS icacls "%QTDIR%\bin\rcc.exe" /grant Everyone:RX ``` 3. **Qt版本兼容性**: - 确认安装的**Qt版本**与项目要求的版本一致 - 检查是否安装了`qttools`组件(包含rcc.exe) --- ### 问题根源说明 当预生成事件执行`Rcc'ing iMediaGo.qrc`时: 1. VS会解析`$(QTDIR)` 2. 若未定义该变量 → 路径解析失败 → **PRJ0018警告** 3. rcc.exe无法定位 → **系统不到路径** → **PRJ0019错误** 通过正确配置环境变量和路径引用,可确保资源编译器正确定位[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值