问题
I need glib for threadscope to work. But I am not able to install it using cabal. I tried cabal install glib
but getting the following error. I even tried downloading the library and installing it locally but get the same error.
I am using Cygwin on Windows. I ran Cygwin setup to make sure I have the missing libraries. I was able to find glib, gobject but not 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
回答1:
Some time ago I've written a small errata to the original wiki article on how to install Gtk2Hs. Here is the link http://progandprog.blogspot.com/2011/04/installing-gtk2hs-012-for-latest.html
I tried to describe all steps here, and hope it will help you.
All these steps are done with latest Gtk2Hs and Haskell platform installation. Without Cygwin and MinGW being installed.
回答2:
It looks like you need to install gtk2hs first.
Here are the windows install instructions for gtk2hs from inside the gtk2hs repo (so I think they are the most current and up to date).
In particular, I think you need to follow these bits:
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.
Once you have that working you should be able to simply:
cabal install gtk gtk2hs-buildtools glib
回答3:
I'm not sure of this answer, but at least in most Linux distributions there are separate packages for libraries and "dev" libraries. The bare library package includes just the library -- that is, only what's needed to use the library once a program is built to need it -- whereas the "dev" version includes C headers and the other things necessary to build programs that use the library. Does Cygwin have something similar? If so, have you installed the "dev" versions of gobject, gthread, glib, etc.?
来源:https://stackoverflow.com/questions/6476063/cabal-missing-dependencies-on-foreign-libraries-when-install-glib-under-windows