WxHaskell/Installation tips

From HaskellWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Debian

  1. For Debian Linux systems (as long as there's no .deb package):
    • Fetch the rpm package from http://wxhaskell.sourceforge.net/download.html
    • make sure you have wxWidgets installed (libraries and developer files)
    • if you haven't done this already, install the debian package "alien": apt-get install alien
    • use alien to install the rpm package: alien -i wxhaskell....rpm
    • use ghc-pkg to add the packages wxcore and wx to ghc's package configuration file:
      cd /usr/lib/ghc-6.2.1/wxhaskell-0.7
      ghc-pkg -D wxhlibdir=/usr/lib/ghc-6.2.1/wxhaskell-0.7 -ai wxcore.pkg
      ghc-pkg -D wxhlibdir=/usr/lib/ghc-6.2.1/wxhaskell-0.7 -ai wx.pkg
  2. Another way for Debian systems:
    use the repository "deb http://haskell-unsafe.alioth.debian.org/archive/i386 unstable ."
  3. A way that surely works:


MacOS X

Getting wxHaskell 0.9.4 to work with wxWidgets 2.6 on Panther (10.3).

  • install wxWidgets for mac, wxmac http://www.wxwidgets.com
    • use the --disable-shared option for configure (this isn't needed in all cases?)
      ./configure --disable-shared
  • Make sure you have readline installed. The simplest way is to use fink or darwinports. http://wxhaskell.sourceforge.net/building-macosx.html
  • grab and install wxHaskell
  • (unique to macosx!)
    sudo ln -s /usr/local/wxhaskell/bin/macosx-app /usr/local/bin/
  • See below if you have any trouble

Unknown:

  • Does the darwinports version of wxWidgets work with wxHaskell? Would be nice if somebody made a portfile for it.

Errors

  • Problems compiling wxHaskell (something like the below)
    /tmp/ghc29861.s:4379: Unknown pseudo-op:
    .subsections_via_symbol

    Make sure you have at least Xcode 1.5 (gcc 3.3 build 1671). Xcode 1.1 (gcc build 1495) is not enough
  • More linker trouble:ld: out/wxc/master.o undefined symbol 36311 (__ZdaPv) can't be a weak definition

/usr/bin/libtool: internal link edit command failed make: *** [out/wxc/libwxc-mac2.6.2-0.9.4.dylib] Error 1

    • Fix seems to be to add the gcc 3.3 version of libstdc++ to your dylib: http://page.freett.com/shelarcy/log/2006/diary_02.html
    • If you use gcc 4, try to add the following linker flags "-lSystemStubs -shared-libgcc -lstdc++-static". (libstdc++-static.a is part of XCode 2.3)
  • If you get linker errors like it not being able to find _TextziParserCombinatorsziParsecziChar_alphaNum_closure, try editing config/config.mk and setting HC=ghc -lHSparsec. This is likely not a mac-specific problem but related to the use of GHC 6.2 over 6.0.1. (not sure if this is still valid)
  • When compiling your Haskell program:
    ld: /usr/lib/crt1.o illegal reference to symbol: __objcInit defined in indirectly referenced dynamic library /usr/lib/libobjc.A.dylib
  • Adding -framework AppKit to the compiler switches for your Haskell program seems to help
  • Certain buttons and widgets are not active

The last point is possibly a wxWidgets or a wxHaskell bug - basically, widgets in "boxed" environments do not react to user. Take out the box, and you're ok.

Windows

Installing wxHaskell is easy once you realize that the batch file (wxhaskell-register.bat) only works from folders with no spaces anywhere in the address, e.g. double clicking C:\Cygwin\wxhaskell-0.9.4\bin\wxhaskell-register.bat works but if you put the files under C:\Documents and Settings\wxhaskell-0.9.4\... or C:\Program Files\wxhaskell-0.9.4\... it might not work. Just move the installer folder wxhaskell-0.9.4 to somewhere with no spaces in the address and double-click wxhaskell-register.bat. I hope this helps someone.