Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 带CPack的应用程序符号_Windows_Image_Cmake_Nsis_Cpack - Fatal编程技术网

Windows 带CPack的应用程序符号

Windows 带CPack的应用程序符号,windows,image,cmake,nsis,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用于创建应用程序符号的图像。它应显示在“开始”菜单文件夹、桌面图标和“应用和功能”菜单中。 到目前为止,我所知道的是:

# 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、图标、桌面快捷方式的组合。。。
有人知道这是怎么回事吗?还是需要一种特殊的格式/尺寸?

多亏@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"
在我的情况下,我的项目文件夹中有一个单独的图像文件夹。
基本上就是这样。但此解决方案似乎只适用于windows,而对于Linux,您必须以不同的方式进行操作。

设置应用程序图标(即为您的可执行文件)是特定于平台的AFAIK。设置应用程序图标与通过CPack设置基于NSIS的安装程序使用的图标完全不同,这就是您发布的代码所做的。您所说的“应用程序符号”是什么意思?.exe的图标?是的,是.exe的符号。就像Internet explorer的“e”。