WxHaskell/Troubleshooting
Jump to navigation
Jump to search
Compilation issues
- Trouble building wxWidgets (MacOS X Tiger)
ld: /System/Library/Frameworks/WebKit.framework/WebKit load command 20 unknown cmd field
/usr/bin/libtool: internal link edit command failed
make: *** [lib/libwx_macu_core-2.6.0.4.0.dylib]
- Likely Solution: Upgrade to XCode >= 2.5
- Can't build wxWidgets 2.6 (MacOS X Leopard)
- Solution: upgrade to wxWidgets 2.8 and the darcs version of wxhaskell (2008-04-25)
- Configure Succeeded (and nothing more)
- Solution: Upgrade to the latest version of Cabal and cabal-install (darcs)
- error build wxcore
/usr/libexec/gcc/i686-apple-darwin8/4.0.1/libtool: can't locate file for: -lwx_macu_media-2.6
/usr/libexec/gcc/i686-apple-darwin8/4.0.1/libtool: file: -lwx_macu_media-2.6 is not an object file (not allowed in a library)
- Solution: try --enable-mediactrl in the wxWidgets configure
Too many levels of symbolic links
(Linux)- UNKNOWN!
cabal install wx
fails- Try:
cabal install wx --configure-opt="--user --enable-split-objs --hcprof"
- One issue is that wxcore currently (2009-02-14) uses the make build method instead of the simple one, and that is a bit fragile
- See WxHaskell/Building for more details
- Try:
App-compilation issues
Could not find module `Graphics.UI.WX':
- Solution Make sure you build and install the wx package too (wxhaskell comes in two parts,
wxcore
, which is what you get if you do ./configure; make; make install; andwx
, which you can install by cd'ing into its directory and doing the standard Cabal stuff)
- Solution Make sure you build and install the wx package too (wxhaskell comes in two parts,
- sample application dies with something like (Linux)
/usr/lib/libwxc-gtk2.6.3-0.10.2.so: undefined reference to `wxGLCanvas::SwapBuffers()'
/usr/lib/libwxc-gtk2.6.3-0.10.2.so: undefined reference to `wxGLCanvas::SetCurrent()'
/usr/lib/libwxc-gtk2.6.3-0.10.2.so: undefined reference to `wxGLCanvas::wxGLCanvas(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&, int*, wxPalette const&)'
/usr/lib/libwxc-gtk2.6.3-0.10.2.so: undefined reference to `wxGLCanvas::wxGLCanvas(wxWindow*, wxGLCanvas const*, int, wxPoint const&, wxSize const&, long, wxString const&, int*, wxPalette const&)'
/usr/lib/libwxc-gtk2.6.3-0.10.2.so: undefined reference to `wxGLCanvas::SetColour(wchar_t const*)'
collect2: ld returned 1 exit status
- Solution Update to the latest wxhaskell (the darcs version on 2008-02-20) (before, --with-opengl was required, now it is not)
- Unknown...
/usr/lib/libwxc-gtk2.6.3-0.10.1.so: undefined reference to `wxWindowBase::Hide()'
- ...
`wxLog::AddTraceMask(wxString const&)' /usr/lib/libwxc-gtk2.6.3-0.10.1.so: undefined reference to `wxHtmlHelpController::GetFrame()'
/usr/lib/libwxc-gtk2.6.3-0.10.1.so: undefined reference to `wxPrintData::SetQuality(int)'
collect2: ld returned 1 exit status
Runtime issues
- sample applications just sit there doing nothing (MacOS X)
- Solution:
macosx-app
the application - Workaround (2009-04-01) If the above solution still does not work (wxWidgets 2.8; Leopard), try running the version of the executable foo.app/Contents/MacOS/foo (generated by macosx-app) or
open foo.app
. I haven't figured out how to run it otherwise, and have just resigned to copying the app bundle somewhere and putting it in my path :-(
- Solution:
- sample applications segfault!
- Solution: upgrade wxhaskell to the darcs version. It supports wxWidgets 2.8 as of 2008-04-25
- wxhaskell builds fine, but sample applications do this:
dyld: Symbol not found: __ZN8wxThread11TestDestroyEv
Referenced from: /usr/local/wxhaskell/lib/libwxc-mac2.8.7-0.10.1.dylib
Expected in: flat namespace
trace trap ./BouncingBalls
- Solution: try
--enable-shared
in wxWidgets config
- Certain buttons and widgets (particularly, those inside of "boxed" environments) are not active (still a problem, 2008-02-20)
- Solution: upgrade to latest version (0.10.3 as of 2008-03-23). It was a wxHaskell bug that is now fixed.
- I only see the first letter of every word
- Solution build wxWidgets with
--enable-unicode
. (We now use wchar* to store strings; but if wxWidgets is compiled without unicode, it thinks it's using char* and that null bytes are string terminators)
- Solution build wxWidgets with
Loading package wxcore-0.10.3 ... : can't load .so/.DLL for: wxc-msw2.6.4-0.10.3 (addDLL: unknown error)
(GHCi)- Unknown!: but you must check that compiled sample application works or not. If sample application doesn't work, please report error message to wxhaskell-users mailing-list (Don't forgot to report error number when reporting error message).
- sample applications terminate with following error message (Windows).
The applicattion failed to initialize properly (0xc0150002). Click OK to terminate the application.
- Solution: install Microsoft Visual C++ 2008 SP1 Redistributable Package.
- When I run a GUI for the second time in GHCi, it crashes.
- No Solution: This is a known issue which is unlikely to be fixed as it is a consequence of design decisions in the underlying wxWidgets library (use of C++ static destructors). The problem is that after the main loop terminates in GHCi, wxWidgets library has not been finalized.
- The last known working version of wxWidgets to support re-running main was wxWidgets 2.4.2. wxHaskell 0.9.4-1 supports this version, but may require a small amount of work to compile with recent versions of GHC.
- (Linux) When running programs you get "...initialization assertion failed, use IA__g_type_init()...", then you need to use a version from the Darcs repository (newer than 15th Jan 2009). This patch solves the problem.
Old issues
WARNING: likely to be obsolete
- Problems compiling wxHaskell (something like the below) (MacOS X)
/tmp/ghc29861.s:4379: Unknown pseudo-op:
.subsections_via_symbol
- Solution: 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 (MacOS X):
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
- Solution?: Add the gcc 3.3 version of libstdc++ to your dylib: http://page.freett.com/shelarcy/log/2006/diary_02.html
- Solution?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)
- [OBSOLETE?] If you get linker errors like it not being able to find _TextziParserCombinatorsziParsecziChar_alphaNum_closure
- Solution: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)
- [OBSOLETE?] When compiling your Haskell program (MacOS X):
ld: /usr/lib/crt1.o illegal reference to symbol: __objcInit defined in indirectly referenced dynamic library /usr/lib/libobjc.A.dylib
- Solution:Adding -framework AppKit to the compiler switches for your Haskell program seems to help