【发布时间】:2019-01-19 20:43:58
【问题描述】:
我正在运行一个非常简单的“hello world”GUI 程序。 (另存为gui.hs) 我的代码是:
import Graphics.UI.Gtk
main = do
initGUI
window <- windowNew
widgetShowAll window
onDestroy window mainQuit
mainGUI
我编译:ghc -L/usr/lib gui
它编译得很好,但是当我运行它时,我看到:
objc[51245]: Class GNotificationCenterDelegate is implemented in both /usr/local/opt/glib/lib/libgio-2.0.0.dylib and /opt/local/lib/libgio-2.0.0.dylib. One of the two will be used. Which one is undefined.
(process:51245): GLib-GObject-WARNING **: gsignal.c:2423: signal 'destroy' is invalid for instance '0x7fe9dc81a0e0' of type '(null)'
窗口出现,但当我单击关闭窗口时它不会退出。 (窗口消失,但进程并未终止。)
这是一个非常简单的示例 - 我尝试制作触发信号的按钮,但我(几乎)总是收到“信号无效”警告。
我正在使用带有 GHC 8.4.3(Haskell 平台)的 Mac OS X El Capitan,我按照此处的说明安装了所有内容:(第 2 节) [https://wiki.haskell.org/Gtk2Hs/Mac]
我开始觉得我的安装搞砸了?也许我还需要用 brew 安装 GHC 吗?有什么方法可以测试安装(除了尝试我已经在做的事情)?这两个运行时警告是否相互关联?感谢您的帮助!
【问题讨论】:
-
我远非 Mac 专家,但看起来您可能在两个不同的地方安装了两次 glib,而 GHC 不确定该使用哪一个。我不太确定如何解决它,但
brew uninstall glib可能工作。