最近在学ruby/gtk2,顺手就写了个小程序.
用exerb做了个exe后,发现gtk库没有自动添加.让用户去安装gtk win32 runtime很影响用户体验,于是尝试着找出一个最小环境。
2008-9-17 更新
ruby\lib\GTK\etc\gtk-2.0\gdk-pixbuf.loaders
如果项目用到图片必须加入这个文件.
然后去ruby\lib\GTK\lib\gtk-2.0\2.10.0\loaders下找到你用到的图片的loader
例如:libpixbufloader-png.dll
完了吧之前的build\etc\gtk-2.0\gdk-pixbuf.loaders里的libpixbufloader-png.dll
改成build里的相对路径就好了
在你第一次用gtkthemeselector.exe的时候会在
build\etc\gtk-2.0\下生成一个gtkrc文件,我默认写上ms-windows.这样就能设定默认主题了.
----------------- 以下是原文 ---------------
开发环境:
ruby186-26
ruby-gnome2-0.16.0-1-i386-mswin32
第一步 打包win32可执行文件
我使用的exerb,具体方法我就不说了,网上一查一大堆.
用mkexy弄出yourApp.exy文件,打开这个文件将general:core: cui改成gui.我默认是出的cui.就是控制台模式,会有命令行窗口的,用户体验不好。
然后用exerb yourApp.exy来构造出一个红宝石图标的yourApp.exe
这时点击这个exe,会提示gtk的dll没有找到.不急我们进下一步。
第二步 最小win32 gtk runtime
所有需要的dll都在ruby\lib\GTK\bin下,我测试 只要下面几个dll程序就能运行了
新建个目录吧,就是将要放最小gtk runtime的.比如build目录
libgtk-win32-2.0-0.dll
iconv.dll
libglib-2.0-0.dll
libgdk-win32-2.0-0.dll
libfreetype-6.dll
libcairo-2.dll
libpango-1.0-0.dll
libgobject-2.0-0.dll
libpangoft2-1.0-0.dll
libpng12.dll
libfontconfig-1.dll
libatk-1.0-0.dll
libgdk_pixbuf-2.0-0.dll
xmltok.dll
zlib1.dll
xmlparse.dll
intl.dll
libpangowin32-1.0-0.dll
libpangocairo-1.0-0.dll
libgthread-2.0-0.dll
libgmodule-2.0-0.dll
这些都copy到build
现在程序可以跑了,但是有乱码,而且样式很丑
先解决乱码问题
去ruby\lib\GTK\etc目录 copy到build
打开etc\pango\pango.modules找到"pango-basic-fc.dll"那一行,去那个目录把文件copy到build
并且把绝对路径改成相对与pango.modules的相对路径
然后解决样式问题
去ruby\lib\GTK\lib\目录,整个lib copy到build下
其实只要ruby\lib\GTK\lib\gtk-2.0\2.10.0\engines\libwimp.dll,这个是ms-windows theme的dll
然后去ruby\lib\GTK\share吧整个share copy到build下
其实只要share\themes\MS-Windows\gtk-2.0\gtkrc.其他可以删除
这两个文件就是ms-windows的theme了
最后吧ruby\lib\GTK\bin\gtkthemeselector.exe copy到build下.你就可以选择ms-windows theme了,
你也可以按照这个办法找出其他的theme.反正我是不要了,gtk默认带的theme都异常的丑陋
至此最小gtk win32 runtime就弄好了.不压缩7.89M,压缩rar后2.61M.还是可以接受的。
后记:
要说要有什么问题,就是
1.可能我写的app没有用到一些gtk库,可能会需要其他的dll,可以再加,反正exe会提示,这个很简单
2.如果能默认出ms-windows theme就好了,默认情况会是一个很丑的theme,需要gtkthemeselector.exe改一下
我把MS-WINDOWS的folder name改成DEFAULT也没用.我会继续研究的。(2008-9-17 更新里解决了这个问题)
附件 送上那个程序和runtime package.
分享到:
- 2008-09-13 20:29
- 浏览 2668
- 评论(0)
- 论坛回复 / 浏览 (0 / 4581)
- 查看更多
相关推荐
基于C gtk/gtk+ sqlite3选课系统的开发
gtk3-runtime-3.24.29-2021-04-29-ts-win64.exe
跟其它界面开发包不同的是,Ruby-GNOME2不仅仅提 供界面控件,它提供了整个GNOME 2.0的环境,包含Ruby/GLib2、Ruby/ATK、Ruby/Pango、Ruby/GTK2、Ruby/GnomeCanvas2、Ruby /GNOME2、Ruby/GnomeVFS、Ruby/GtkHtml2、...
GTK+(GIMP Toolkit)是一套源码以LGPL许可协议分发、跨平台的图形工具包。最初是为GIMP写的,已成为一个功能强大、设计灵活的一个通用图形库,是GNU/Linux下开发图形界面的应用程序的主流开发工具之一。并且,GTK+也...
gtk2-runtime-2.24.33-2021-01-30-ts-win64.exe
这是一个打包好的windows gtk runtime。gtk开发者发布自己软件时,可以代上这个!
gtk2.24.10 and gtk3.4.0 for win32
GTK# 是对流行的跨平台图形用户界面库(GUI)GTK+ 的包装。这个包是封装层需要依赖的底层库,包含nuget需要的外部依赖项。
gtk3-runtime-3.24.18-2020-05-19-ts-win64.exe gtk3-runtime-3.24.18-2020-05-19-ts-win64.exe gtk3-runtime-3.24.18-2020-05-19-ts-win64.exe gtk3-runtime-3.24.18-2020-05-19-ts-win64.exe gtk3-runtime-...
gtk库 gtk开发工具包
gtk-dev-2.12.9-win32-2,包含glade使用手册
Ruby / GtkEmbedMoz是mozilla的GTK嵌入小部件的Ruby语言绑定。 如果您使用Ruby / GtkEmbedMoz,则可以将Mozilla嵌入Ruby / GTK应用程序。 例如浏览器等。
Gtk+ 2 的运行库,安装后才可以运行GTK程序
本文介绍了我们常用的输入法,分析了GTK immodule比XIM的好处。
gtk2-runtime-2.12.1.exe
gtk3-runtime-3.24.31-2022-01-04-ts-win64.exe
gtk-sharp-2.12.25 windows安装文件