windows - 带有 CPack 的应用程序符号

标签 windows image cmake nsis cpack

我正在尝试指定 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)

以及 google 第 1+2 页上的所有内容,显示了 cpack、图标、桌面快捷方式等组合的内容。 有谁知道这是如何工作的?或者是否需要特殊的格式/尺寸?

最佳答案

多亏了@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,你必须采取不同的做法。

关于windows - 带有 CPack 的应用程序符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59879413/

相关文章:

php - Doctrine::Windows::如何在 Windows 上生成 Doctrine 模型?

c++ - 如何在Windows和Linux上用C++读取系统信息?

php - 如何设置默认图像

c - 以编程方式获取函数名称

CMake:执行宏/函数作为add_custom_command的命令

c++ - cmake,关于 include_directories 的说明

c++ - 多个应用程序入口点

c - 如何在C中创建文件夹(需要在Linux和Windows上运行)

HTTP:很少更改的图像的最佳 header 是什么

python - 索引错误: list index out of range - when plotting images