基于QMkae/CMake配置QT生成的exe图标

前言

项目从QMake迁移到CMake的时候遇到的一些坑,记录下。

QMake

配置ICON很简单,有如下两种方法

  • 直接在.pro工程里边增加一行代码: RC_ICONS = logo.ico,注意ico的路径

  • 新建一个rc文件,内容如下:

    IDI_ICON1 ICON DISCARDABLE "Xiaobai.ico"  // 注意替换为自己图标所在路径
    

    然后在.pro文件中中增加:

    RC_FILE += logo.rc
    

QMake_Icon

CMake

CMake配置的话按照网上的资料折腾了很久:

注意下路径
CMake_Path

1、资源文件
新建一个icon.rc文件,内容如下:

IDI_ICON1 ICON DISCARDABLE "logo.ico"   //可以将logo替换为你的路径

2、添加文件
QMake_AddExecutable

3、编译工程
正常的话如下图所示:

QMake_Icon

4、编译出错
有时使用rc文件作为可执行文件时,会提示错误,fatal error RC1107: invalid usage; use RC /? for Help

CMake_RcError

我们需要使用RC程序生成res文件,路径如红框所示:

  • 复制 D:\Windows Kits\10\bin\10.0.26100.0\x64到资源管理器打开
  • 在文件路径栏打开输入 cmd 打开终端
  • 输入RC rc文件路径
  • 得到res文件

CMake_RC

  • 删除qt_add_executable中的icon.rc,然后链接到库
target_link_libraries(InfineonFlashTool PRIVATE
    # ${CMAKE_CURRENT_SOURCE_DIR}/icon.res
)
  • 最终结果也是一样的,图标设置成功!