【问题标题】:Cabal missing dependencies on foreign libraries when install glib under Windows在 Windows 下安装 glib 时 Cabal 缺少对外部库的依赖
【发布时间】:2011-09-22 11:52:09
【问题描述】:

我需要 glib 才能使 threadscope 工作。但我无法使用 cabal 安装它。我尝试了cabal install 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

【问题讨论】:

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

标签: haskell ghc cabal


【解决方案1】:

我不确定这个答案,但至少在大多数 Linux 发行版中,库和“开发”库都有单独的包。裸库包只包括库——也就是说,只有在构建程序需要它时才需要使用库的东西——而“开发”版本包括 C 头文件和构建使用图书馆。 Cygwin有类似的东西吗?如果是这样,您是否安装了“开发”版本的 gobject、gthread、glib 等?

【讨论】:

    【解决方案2】:

    看来你需要先安装 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.
    

    一旦你完成了这项工作,你应该能够简单地:

    cabal install gtk gtk2hs-buildtools glib
    

    【讨论】:

    • 谢谢。我设法安装了 gtk,但现在似乎找不到 iconv 库。我试图单独下载并安装它仍然没有运气。
    • 我需要更多信息来帮助您。也许你应该问一个新问题?
    • 我按照上面的指南设法解决了这个问题。但由于您的回答也很有用,+1
    【解决方案3】:

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

    我尝试在这里描述所有步骤,希望对您有所帮助。

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

    【讨论】:

      猜你喜欢
      • 2018-01-30
      • 2012-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      相关资源
      最近更新 更多