Haskell gtk2hs, подходящего изображения не найдено - PullRequest
1 голос
/ 30 ноября 2010

Я пытаюсь использовать GTK + Haskell API gtk2hs в OSX.Я установил ghc и haskell-platform через Homebrew.

Затем я запустил эти три команды:

cabal update
cabal install gtk2hs-buildtools
cabal install gtk

Я пытаюсь заставить эту маленькую программу работать:

module GUI where

import Graphics.UI.Gtk

main = do
  initGUI
  win <- windowNew
  onDestroy win mainQuit
  widgetShow win
  mainGUI

Компилируется просто отлично.Но когда я запускаю main, я получаю:

Loading package array-0.3.0.1 ... linking ... done.
Loading package bytestring-0.9.1.7 ... linking ... done.
Loading package containers-0.3.0.0 ... linking ... done.
Loading package filepath-1.1.0.4 ... linking ... done.
Loading package old-locale-1.0.0.2 ... linking ... done.
Loading package old-time-1.0.0.5 ... linking ... done.
Loading package unix-2.4.0.2 ... linking ... done.
Loading package directory-1.0.1.1 ... linking ... done.
Loading package process-1.0.1.3 ... linking ... done.
Loading package time-1.1.4 ... linking ... done.
Loading package random-1.0.0.2 ... linking ... done.
Loading package haskell98 ... linking ... done.
Loading package transformers-0.2.2.0 ... linking ... done.
Loading package mtl-2.0.1.0 ... linking ... done.
Loading package cairo-0.12.0 ... linking ... done.
Loading package glib-0.12.0 ... can't load .so/.DLL for: intl (dlopen(/usr/local/Cellar/gettext/0.17/lib/libintl.dylib, 9): no suitable image found.  Did find:
    /usr/local/Cellar/gettext/0.17/lib/libintl.dylib: mach-o, but wrong architecture)

Я видел некоторые другие примеры этой проблемы во время поиска в Google, но ни один из них не подходит в этом случае.

1 Ответ

2 голосов
/ 01 декабря 2010

Какова архитектура ваших домашних варочных пакетов?Похоже, что gettext может быть 64-битным, но ghc в настоящее время поддерживает только 32-битный на OS X. Вы можете проверить архитектуру с помощью lipo:

MacBook-1:~ john$ lipo -info /opt/local/lib/libintl.dylib 
Architectures in the fat file: /opt/local/lib/libintl.dylib are: i386 x86_64

Если вы не видите i386 в списке доступныхВ архитектуре вам потребуется перекомпилировать gettext (и, возможно, множество других библиотек) как 32-битные или универсальные двоичные файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...