我有一个在 Windows、Linux 和 Macintosh 上运行的跨平台程序。我的 Windows 版本有一个图标,但我不知道如何为我的 Linux 版本制作一个图标。是否有 KDE、Gnome 等的标准格式,或者我必须为每个格式做一些特别的事情?
我的应用程序是 c++ 并作为源代码分发,因此最终用户将使用 gcc 编译它。
如果我可以将图标直接嵌入到我的 exe 二进制文件中,那将是最好的。
对于 Gnome 和 Kde,您可能希望在您的应用程序中包含一个桌面文件,该文件定义它将如何启动。规范可以在这里找到。如果您的应用程序中包含安装程序,您可能希望它生成此桌面文件并将其放在正确的位置以进行菜单条目等
如果您使用的是预烘焙的 F/OSS 构建系统之一,例如 KDE 的 CMake 支持,那么一旦您拥有 .desktop 文件,这真的相当容易:
安装(文件 myapp.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})kde4_add_app_icon(myapp_SRCS“${CMAKE_CURRENT_SOURCE_DIR}/hi*-app-myappname.png”)
如果您自己滚动,请考虑使用xdg-utils,其中包括方便的小脚本,例如 xdg-desktop-menu (安装桌面菜单项)和 xdg-desktop-icon (将图标安装到桌面)。
.desktop 标准已在第一条评论中指出,但您也可以只获取系统上已安装的标准并从那里进行修改。至于图标,通常支持 PNG 和 SVG,尽管 PNG 仍然倾向于提供最好的结果。
KDE 社区及其 KDE 4 系列开始使用 CMake 作为构建系统。他们开发了一个 CMake 宏,该宏知道如何为您的应用程序设置一个与平台无关的图标(windows(嵌入在 exe 中)、mac(.app 包)、linux(.desktop 文件)等)
也许你可以使用它。