微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Linux系统中的可执行文件上设置图标或.ico文件?

如何解决如何在Linux系统中的可执行文件上设置图标或.ico文件?

我一直试图在 linux macOS 可执行文件(.exe)上设置图标。

我了解到的是3个地方图标集:在任务栏,窗口栏和可执行文件缩略图上。 我已经在任务栏和窗口栏上设置了,但是未在exe文件上设置。 (顺便说一句,我已经使用Visual Studio在Windows中完成了其中的3个。)

,我可能不知道它的确切术语,所以我将显示以下示例: enter image description here

我猜.rc文件应该在makefile中。 如果是这样,我也可以在macOS中解决它。 如果没有,我也想知道如何在linux和macOS中进行设置。 请让我知道如何使用和设置它。预先感谢。

p.s。我使用GLFWimage在窗口栏和任务栏上设置图标,并在openGL3和c ++上工作。

glfwSetwindowIcon(window,1,&icon);

解决方法

我猜.rc文件应该在makefile中。

虽然在Windows .exe文件中有一种“标准化”的图标存储方式,但在“ ELF”文件(Linux下最常见的可执行文件格式)中却没有这种方法。

在任务栏和窗口栏上

窗口管理器使用的图标(例如用于任务栏)通常存储为“ X11窗口属性”。 “ X11窗口属性”是程序分配给窗口的一些数据。

程序必须提供图标图像作为数组,并调用函数XChangeProperty()(这是函数glfwSetWindowIcon()间接执行的操作)。

图标不必以特殊方式存储(与Windows中的.rc文件相比);该程序可以简单地将图标存储在某个const数组中,甚至可以在调用XChangeProperty()之前计算图标图像数据。

...但不在exe文件上。

正如我已经写的那样,没有“标准化”的方法可以将图标存储在Linux的可执行文件中。

某些文件管理器“知道”某些程序并显示相应的图标:他们知道“ xterm”是终端程序,因此它们显示终端图标。但是,此图标不是存储在可执行文件中,而是存储在文件管理器中:如果将任何可执行文件重命名为“ xterm”,则将显示终端图标。

有一个名为“ elfres”的扩展名(几年前被命名为“ elficon”),它允许在ELF可执行文件中添加图标。 The web site of that extension is found here.在链接的网站上还可以找到a screen shot with an example-这样您就可以检查我是否正确理解了您的意思,这就是您在说的。

不幸的是,这是一个非标准扩展。因此,“标准” Linux安装将不会检查可执行文件是否包含图标,因此不会显示该图标。

如果使用“ elfres”方法,则必须安装一个特殊的插件;否则,不会显示可执行文件的图标。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。