【问题标题】:Qt error when setting the application icon设置应用程序图标时出现Qt错误
【发布时间】:2016-07-26 06:25:04
【问题描述】:

我正在尝试在 windows7 上使用 Qt 设置应用程序图标。正如 Qt 文档所说,我遵循每一步。但是我收到了错误消息:

mingw32-make[1]: *** [release/Makenotepad_resource_res.o] Error 1

我把编译器输出:

>13:15:35: Running steps for project Makenotepad...
13:15:35: Configuration unchanged, skipping qmake step.
13:15:35: Starting: "C:\Qt\Qt5.7.0\Tools\mingw530_32\bin\mingw32-make.exe" 
C:/Qt/Qt5.7.0/Tools/mingw530_32/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory 'C:/Qt/build-Makenotepad'
windres -i "..\Saved project\Makenotepad\myapp.rc" -o release\myapp_res.o --include-dir=./"../Saved project/Makenotepad" -DUNICODE -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN
windres: can't popen `gcc -E -xc -DRC_INVOKED -I./../Saved\ project/Makenotepad -DUNICODE -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN "..\Saved project\Makenotepad\myapp.rc"': No error
Makefile.Release:68: recipe for target 'release/myapp_res.o' failed
mingw32-make[1]: Leaving directory 'C:/Qt/build-Makenotepad'
mingw32-make[1]: *** [release/myapp_res.o] Error 1
Makefile:34: recipe for target 'release' failed
mingw32-make: *** [release] Error 2
13:15:36: The process "C:\Qt\Qt5.7.0\Tools\mingw530_32\bin\mingw32-make.exe" exited with code 2.
Error while building/deploying project Makenotepad (kit: Desktop Qt 5.7.0 MinGW 32bit)
When executing step "Make"
13:15:36: Elapsed time: 00:01.

这个问题我已经找了半天了,其实很多人都有同样的问题,也没有明确的答案。有人可以帮忙吗,谢谢。

【问题讨论】:

    标签: qt icons


    【解决方案1】:

    Qt 5 使用 RC_ICONS 来设置图标。它是从项目的 pro 文件中完成的。

    RC_ICONS = myappico.ico
    

    你也尝试过吗?运行 qmake 并尝试重建项目。

    【讨论】:

    • 是的,我试过这个,但我得到了同样的错误。我也尝试过创建 .rc 文件,但还是不行。
    • 清理,运行Qmake,一切正常。当我构建时,它总是卡在这里。
    • 添加图标文件时确定是这样吗?
    • 是的,当我删除该行时:RC_FILE += myapp.rc;我可以正确构建和运行我的程序。
    • 使用其他方法。 RC_ICONS = icon.ico 是Qt5吧?
    【解决方案2】:

    不久前我的系统环境出现了一些问题,因此在项目设置中,我转到项目 > 构建(针对所选工具包)> 构建环境并选择“清除系统环境”。这解决了我最初的构建问题,但不幸的是,由于 winres 的工作方式存在明显错误(它是 terrible program),它以某种方式破坏了它所做的命令行生成。

    如果您使用干净的系统环境进行构建,解决方法是添加 COMSPEC 环境变量:

    COMSPEC  C:\WINDOWS\system32\cmd.exe
    

    这似乎足以修复 winres。我将提交一个 QtCreator 错误,让他们在选择清除 sys 环境时默认添加此环境。

    编辑:QTCREATOR 问题在这里:https://bugreports.qt.io/browse/QTCREATORBUG-23649

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-11
      • 1970-01-01
      • 2012-11-28
      • 1970-01-01
      • 2016-04-27
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      相关资源
      最近更新 更多