浏览 4613 次
精华帖 (0) :: 良好帖 (8) :: 新手帖 (8) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-09-13
用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. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |