【发布时间】:2017-09-03 03:42:13
【问题描述】:
有人在 Windows 上成功安装了 gtk2hs 吗?我在 Windows 10 上使用 Haskell Platform 7.10.2a,均为 64 位,并尝试运行 "cabal install gtk3",但失败了在带有错误消息的 gio 包上:
gcc.exe:错误:无法识别的选项“-pthread”
(编辑额外说明:下面的下一行错误消息)
编译 dist\build\System\GIO\File\FileAttribute_hsc_make.c 失败(退出代码 1)
Haskell Platform 包的 mingw 子文件夹中的 gcc 似乎有点过时了。有没有办法更新这个子文件夹?我在互联网上找到的唯一线索是下面的链接,它似乎没有提供任何解决方案:
https://ghc.haskell.org/trac/ghc/ticket/10726
(编辑:gcc 的版本似乎无关。在 Windows 下运行时,'-pthread' 开关似乎对 gcc 无效,它仅在 Linux 中有效,请参阅此链接,但我不知道为什么 GHC/GTK3正在使用 -pthread 并且不知道如何将其更改为 -mthread http://mingw-users.1079350.n2.nabble.com/pthread-vs-mthreads-td7114500.html)
在运行 cabal 之前,我使用 MSYS2 在 Windows 上安装了 GTK+ 3.18.0.1。
我在 Linux 上轻松安装了 gtk2hs,完全没有问题。
【问题讨论】:
-
我很确定您不能更改 ghc 附带的 mingw 否则它会损坏,但您应该使用不同的 C 编译器构建 gtk(支持 Windows 上 pthreads 的编译器......不是确定这是不是一件事)。
-
对不起,我之前没说清楚,gcc 问题不在于 GTK+ 本身,而在于 Cabal 试图在 Gtk2Hs 包中编译 .hsc 文件。编译.hsc文件时,需要gcc,见:downloads.haskell.org/~ghc/latest/docs/html/users_guide/…我在网上发现MinGHC和Stack都使用MSYS,所以我想也许他们可以通过从MSYS内部更新gcc来解决gcc版本的问题,但没有运气所以远,还在努力。
标签: windows haskell gcc installation gtk3