2011-06-25 42 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