2011-06-25 43 views
1

我需要glib以使threadscope正常工作。但我无法使用cabal进行安装。我试过cabal install glib,但得到以下错误。我甚至尝试下载库并在本地安装,但得到相同的错误。Cabal在Windows下安装glib时缺少对外部库的依赖关系

我在Windows上使用Cygwin。我运行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 
+0

GLib不是Gtk2HS的组件吗?如果是这样,你想按照说明在Windows上安装Gtk2HS - http://www.haskell.org/haskellwiki/Gtk2Hs。有可能通过Cygwin绑定它,但是如果你尝试的话,你会非常依赖自己。对于Windows上的FFI绑定,MinGW/MSYS是Unix兼容性的常见解决方案。 –

回答

4

前一段时间我写了一个关于如何安装Gtk2Hs的原始wiki文章的小勘误。这里是链接http://progandprog.blogspot.com/2011/04/installing-gtk2hs-012-for-latest.html

我试图描述这里的所有步骤,并希望它会帮助你。

所有这些步骤都是使用最新的Gtk2Hs和Haskell平台安装完成的。没有安装Cygwin和MinGW。

+0

这是一个非常详细的指南。谢谢 – vis

0

我不确定这个答案,但至少在大多数Linux发行版中,存在用于库和“dev”库的单独软件包。裸露的库包只包括库 - 也就是说,只有在程序构建需要时才需要使用该库 - 而“dev”版本包括C头文件和其他必要的东西来构建使用该库的程序图书馆。 Cygwin有类似的东西吗?如果是这样,你安装了gobject,gthread,glib等的“dev”版本吗?

1

看起来你需要先安装gtk2hs。

以下是gtk2hs回购库中gtk2hs的windows install instructions(所以我认为它们是最新的和最新的)。

特别是,我认为你需要遵循这些位:

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. 

一旦你的工作,你应该能够简单:

​​
+0

谢谢。我设法安装了gtk,但现在似乎无法找到iconv lib。我试图单独下载并安装它,但仍然没有运气。 – vis

+0

我需要更多信息来帮助你。也许你应该问一个新问题? –

+0

我设法通过遵循上述指南来解决问题。但作为你的答案也很有用,+1 – vis