haskell - 如何使用 MinGW/MSYS 在 Windows 上安装 wxHaskell

标签 haskell wxwidgets wxhaskell

我试图将 wxHaskell 安装到运行 Windows XP64 的机器上,使用 gcc 从源代码构建的 MinGW/MSYS 和 wxWidget 3.0。我做了:

cabal install wx

并得到一个错误:
...
Configuring wxc-0.90.0.4...
setup.exe: wx-config: does not exist
Failed to install wxc-0.90.0.4
cabal.exe: Error: some packages failed to install:
wx-0.90.0.1 depends on wxc-0.90.0.4 which failed to install.
wxc-0.90.0.4 failed during the configure step. The exception was:
ExitFailure 1
wxcore-0.90.0.3 depends on wxc-0.90.0.4 which failed to install.

我已经成功地使用 wxWidgets 用 C++ (gcc) 编写了一个示例应用程序。所以我确实有一个有效的 wxWidget 安装。我有 wx-config在:
$ which wx-config
/usr/local/bin/wx-config

问题是wx-config是一个 unix shell 脚本,并且 cabal(从 MSYS 调用)以某种方式拒绝识别它,即使它在系统路径上。如果我运行 wx-config在 MSYS 中,我得到类似的信息:
$ wx-config --cxxflags
-I/usr/local/lib/wx/include/msw-unicode-3.0 -I/usr/local/include/wx-3.0 -D_LARGE
FILE_SOURCE=unknown -DWXUSINGDLL -D__WXMSW__ -mthreads

我问过一个问题 https://stackoverflow.com/questions/21998763/how-to-convert-msys-shell-scripts-to-windows-exe-files看看是否可以将脚本转换为 exe,但没有人提供任何解决方案。

这里还有一个相关的问题,wxHaskell installation on windows ,另一个在这里wx 0.90.0.1 fails to install on Haskell Platform 2012.2.0.0 (WinXP) .事实上,我找不到确认有效的答案。此外,这里的错误/设置似乎不同,或者其中的答案似乎不能解决我的问题。特别是,我从 https://sourceforge.net/projects/wxhaskell/files/wx-config-win/ 下载了一个外部 wx-config.exe每 http://www.haskell.org/haskellwiki/WxHaskell/Windows .但是运行 wx-config.exe 无法识别我的 wxWidget 安装并且总是给我一个关于找不到 wxWidgets 的错误,如下所示:
$ ./wx-config.exe --prefix=/usr/local/
wx-config Error: wxWidgets hasn't been found installed at 'C:\MinGW\msys\1.0\loc
al'.

Please use the --prefix flag (as in wx-config --prefix=C:\wxWidgets)
or set the environment variable WXWIN (as in WXWIN=C:\wxWidgets)
to specify where is your installation of wxWidgets.

知道如何解决这个问题吗?

谢谢,

- 更新 -

@JP我试过:
C:\temp\wxdirect-0.90.0.1>runhaskell Setup configure --extra-lib-dirs=c:\MinGW\lib --extra-include-dirs=c:\MinGW\include --extra-include-dirs=c:\MinGW\msys\1.0\local\include
Configuring wxdirect-0.90.0.1...

并得到
Setup: At least the following dependencies are missing:
containers >=0.2 && <0.5, strict -any

我调整了 wxdirect.cabal 以绕过容器 >=0.2 && <0.5,但无法通过严格。

最佳答案

我编写了一个 powershell 脚本,可以自动设置 MinGW 和下载/构建 wxWidgets,以便为 Windows 7 构建 wxHaskell。

https://github.com/cessationoftime/wxHaskell-Windows-Builder

关于haskell - 如何使用 MinGW/MSYS 在 Windows 上安装 wxHaskell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22005678/

相关文章:

haskell - 运行 wxHaskell (Windows) 的问题

haskell - 在 cabal 沙箱中指定自定义远程仓库

python - 在linux中,wx.PopupWindow从wx.Dialog弹出时没有得到任何鼠标事件?

Haskell Lazy ByteString + 读/写进度函数

erlang - 单击按钮时如何获取?

c++ - 如何获取 libmathplot.a

haskell - wxHaskell 失败,因为它依赖于 wx_macu-2.8

haskell - 作为期限或值计算结果的返回类型

haskell - optparse-applicative:如何处理 Arrow 语法中的无参数情况