首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在windows上打包haskell gtk2hs glade应用程序?

如何在windows上打包haskell gtk2hs glade应用程序?
EN

Stack Overflow用户
提问于 2011-03-08 02:36:03
回答 1查看 824关注 0票数 11

我用gtk2hs,Glade和Haskell做了一个小的图形用户界面应用。它在Windows XP上运行得很好,但用户需要安装GTK+、gtk2hs (它需要libglade-2.0.0.dll)和GHC (因为它依赖于gtk2hs )才能运行它。

我自己也是一个Windows用户,但是我如何从用户的角度简化我的小n00b的安装呢?有没有办法把它和需要的.dll打包在一起?我怎样才能最好地找到需要哪些.dll文件呢?什么是好的实践?

非常感谢,Jarra

EN

回答 1

Stack Overflow用户

发布于 2011-03-08 16:49:56

我终于找到了我自己问题的答案。我使用了de Inno安装实用程序(你可以在这里找到:http://www.jrsoftware.org/isdl.php)来做一个Windows安装程序。对于一个名为Crosschecker的GTK / Glade / Gtk2hs应用程序,我使用了以下配置:

代码语言:javascript
复制
; -- crosschecker.iss --
; For making the crosschecker installer.

[Setup]
AppName=Crosschecker
AppVersion=0.1
DefaultDirName={pf}\Crosschecker
; Since no icons will be created in "{group}", we don't need the wizard
; to ask for a Start Menu folder name:
DisableProgramGroupPage=yes
UninstallDisplayIcon={app}\crosschecker.exe
OutputDir=userdocs:Inno Setup Examples Output

[Files]
Source: "crosschecker.exe"; DestDir: "{app}"
Source: "window.glade"; DestDir: "{app}"

; GTK+ dependencies
; DLL
Source: "libs\libcairo-2.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\libpangocairo-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\jpeg62.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\libtiff3.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\libpng12-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\zlib1.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\intl.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\libgdk_pixbuf-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\libgdk-win32-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\libglib-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\libgmodule-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\libgobject-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\libgthread-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\libgtk-win32-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\libpango-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\libpangoft2-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\libpangowin32-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\libglade-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\libatk-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\libgio-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\libxml2.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "libs\iconv.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "etc\gtk-2.0\gdk-pixbuf.loaders"; DestDir: "{app}\etc\gtk-2.0"; Flags: ignoreversion


[Icons]
Name: "{commonprograms}\Crosschecker"; Filename: "{app}\crosschecker.exe"
Name: "{commondesktop}\Crosschecker"; Filename: "{app}\crosschecker.exe"

大部分.dll来自GTK,少数来自gtk2hs包……我将所有的.dll文件复制到一个lib目录中,这就是Inno设置配置所要查看的内容。

HTH,

Jarra

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5223662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档