带有 CPack 的应用程序符号
Posted
技术标签:
【中文标题】带有 CPack 的应用程序符号【英文标题】:Application symbol with CPack 【发布时间】:2020-01-23 13:11:42 【问题描述】:我正在尝试指定 CPack/NSIS 用来创建应用程序符号的图像。它应该显示在开始菜单文件夹、桌面图标和应用程序和功能菜单中。 目前我知道的是:
# Icon displayed inside the installer on top left
set(CPACK_PACKAGE_ICON ""$CMAKE_CURRENT_SOURCE_DIR/images\\\\Icon.bmp")
# Icon visible in Taskbar at installation, same for CPACK_NSIS_MUI_UNIICON
set(CPACK_NSIS_MUI_ICON "$CMAKE_CURRENT_SOURCE_DIR/images/Install_Icon.ico")
我已经试过参数CPACK_NSIS_MUI_HEADERIMAGE,
set(CPACK_NSIS_INSTALLED_ICON_NAME bin\\\\$PROJECT_NAME.exe)
以及谷歌页面 1+2 上的所有内容对于 cpack、图标、桌面快捷方式的组合所显示的内容...... 有谁知道这是如何工作的?还是需要特殊的格式/尺寸?
【问题讨论】:
设置应用程序图标(即为您的可执行文件)是特定于平台的 AFAIK。设置应用程序图标与通过 CPack 使用基于 NSIS 的安装程序设置图标完全分开,这是您发布的代码正在执行的操作。 “应用程序符号”是什么意思? .exe 的图标? 是的,.exe 的符号。就像 Internet Explorer 的“e”。 【参考方案1】:感谢@Developer Paul 的评论,我明白了。 CPack 和 NSIS 在这里具有误导性,因为链接到图标和图像的不同选项表明这是您通过它们进行的设置。 实际上,应用程序图标是在 windows 下使用资源文件 (.rc) 设置的,因此您有 3 个文件:您的 CMakeLists.txt、Icon.ico 和 AppIcon.rc。
在您的 CMakeLists.txt 链接中指向 .rc 文件
add_executable("$PROJECT_NAME" helloworld.cpp AppIcon.rc)
.rc 仅包含指向您的 .ico 的链接,如下所示:
IDI_ICON1 ICON DISCARDABLE "images/icon.ico"
就我而言,我的项目文件夹中有一个单独的 images 文件夹。 基本上就是这样。但是这个解决方案似乎只适用于 Windows,对于 Linux,你必须以不同的方式来做。
【讨论】:
这是给 Qt 的。或者 GTK 呢?以上是关于带有 CPack 的应用程序符号的主要内容,如果未能解决你的问题,请参考以下文章
cpack 生成带有 %files 条目的 RPM,这些条目与 RPM 规范冲突。怎么修?