У Cabal отсутствуют зависимости от сторонних библиотек при установке glib под Windows - PullRequest
1 голос
/ 25 июня 2011

Мне нужен glib для ThreadScope для работы. Но я не могу установить его с помощью Cabal. Я попытался cabal install glib, но получил следующую ошибку. Я даже пытался загрузить библиотеку и установить ее локально, но получил ту же ошибку.

Я использую Cygwin в Windows. Я запустил установку Cygwin, чтобы убедиться, что у меня есть недостающие библиотеки. Я смог найти glib, gobject, но не gthread.

    Gtk2HsSetup.hs:25:2:
         warning: #warning Setup.hs is guessing the version of Cabal. If compilation
     of Setup.hs fails use -DCABAL_VERSION_MINOR=x for Cabal version 1.x.0 when buil
    ding (prefixed by --ghc-option= when using the 'cabal' command)
    [1 of 2] Compiling Gtk2HsSetup      ( Gtk2HsSetup.hs, dist\setup\Gtk2HsSetup.o )

    [2 of 2] Compiling Main             ( Setup.hs, dist\setup\Main.o )
    Linking .\dist\setup\setup.exe ...
    Configuring glib-0.12.0...
    setup.exe: Missing dependencies on foreign libraries:
    * Missing C libraries: gobject-2.0, gthread-2.0, glib-2.0, intl, iconv
    This problem can usually be solved by installing the system packages that
    provide these libraries (you may need the "-dev" versions). If the libraries
    are already installed but in a non-standard location then you can use the
    flags --extra-include-dirs= and --extra-lib-dirs= to specify where they are.
    cabal: Error: some packages failed to install:
    glib-0.12.0 failed during the configure step. The exception was:
    ExitFailure 1

Ответы [ 3 ]

4 голосов
/ 27 июня 2011

Некоторое время назад я написал небольшую ошибку в оригинальной статье вики о том, как установить Gtk2Hs. Вот ссылка http://progandprog.blogspot.com/2011/04/installing-gtk2hs-012-for-latest.html

Я попытался описать все шаги здесь и надеюсь, что это поможет вам.

Все эти шаги выполняются с последними установками Gtk2H и платформы Haskell. Без установки Cygwin и MinGW.

1 голос
/ 25 июня 2011

Похоже, вам сначала нужно установить gtk2hs.

Вот инструкции по установке Windows для gtk2hs из репозитория gtk2hs (так что я думаю, что они самые последние и актуальные).

В частности, я думаю, что вы должны следовать следующим битам:

Building on Windows
--------------------

Installation on Windows is nearly as easy as on Unix platforms. However, you
need to download the pre-compiled binary libraries of Gtk+ and all it's
dependent libraries. Point your browser to

http://www.gtk.org/download-windows.html

and download one of the "All-in-one bundles". Note that you do *not* need to
install MinGW nor MSys (but it does not hurt if they are installed on your
system). Install the binaries by unpacking them into a directory without
spaces. Again, this is very important:

*** Do not install the binaries into a directory with embedded spaces. ***

Ensure that the /bin directory is added to your %PATH%. You can ensure that
everything is installed correctly if you can say

pkg-config --cflags gtk+-2.0

and you see some compiler flags that contain the path into which you have
installed the binary bundle. We had reports that the binaries containing version 2.22 do not work and that the version 2.16 gives the following errors when running cabal:

setup.exe: gtk-0.12.0: library-dirs: c:/.../dist/win64/libpng-1.4.3-1/lib doesn't exist or isn't a directory

This problem can be worked around by creating said directory and copying libpng into it. Any further feedback regarding the installation of the binary packages is welcome.

You may now install the cabal packages of Gtk2Hs into any directory you like
(including one that contains embedded spaces). Note that cabal installs the
tools necessary to build into something like

C:\Documents and Settings\%user%\Application Data\cabal\bin

Make sure that this path is also in your %PATH% variable!

ghci and Gtk2Hs on Windows

Due to the way cabal registers packages with ghc, it is quite difficult to
perform the renaming of libraries which is necessary for the binary Windows
bundle to work. As a consequence, the cabal package can do this renaming only
with Cabal 1.8 (shipped with ghc 6.12). If you use ghc 6.10 or earlier, you
need to upgrade your Cabal system to 1.8 if you want to build Gtk2Hs with ghci
support. Note that it is always possible to build executables on Windows.

Как только вы заработаете эту работу, вы сможете:

cabal install gtk gtk2hs-buildtools glib
0 голосов
/ 25 июня 2011

Я не уверен в этом ответе, но по крайней мере в большинстве дистрибутивов Linux есть отдельные пакеты для библиотек и библиотек "dev". Пустой пакет библиотеки включает в себя только библиотеку, то есть только то, что необходимо для использования библиотеки после того, как программа собирается для нее, тогда как версия «dev» включает заголовки C и другие вещи, необходимые для сборки программ, использующих библиотека. Есть ли у Cygwin что-то похожее? Если да, установили ли вы "dev" версии gobject, gthread, glib и т. Д .?

...