|
From: D.V. <dav...@gm...> - 2011-09-16 21:40:59
|
Bonsoir List, I'm trying to follow the instructions from http://www.haskell.org/haskellwiki/WxHaskell/Development/Environment however it's not working. - cabal-dev add-source wxdirect works fine - cabal-dev add-source wxcore has an error - cabal-dev add-source wx works fine wxcore error: [...] Configuring wxcore-0.13.1... setup: Missing dependencies on foreign libraries: * Missing C libraries: wx_baseu-2.8, wx_baseu_net-2.8, wx_baseu_xml-2.8, wx_gtk2u_core-2.8, wx_gtk2u_adv-2.8, wx_gtk2u_html-2.8, wx_gtk2u_qa-2.8, wx_gtk2u_xrc-2.8, wx_gtk2u_aui-2.8, wx_gtk2u_richtext-2.8 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. Building source dist for wxcore-0.13.1... Preprocessing library wxcore-0.13.1... Source tarball created: dist/wxcore-0.13.1.tar.gz I'm on kubuntu 11.04. I have a fresh ghc7.0.1 install. cabal install wx worked fine; I am able to compile and run wxHaskell programs. running with verbose=3 tells me a bunch of /usr/bin/gcc returned ExitFailure 1 with error message: /usr/bin/ld: cannot find -lwxmsw28ud_media /usr/bin/ld: cannot find -lwxmsw28ud_richtext /usr/bin/ld: cannot find -lwxmsw28ud_aui /usr/bin/ld: cannot find -lwxmsw28ud_xrc collect2: ld returned 1 exit status a search on google brings a few pages, however I still can't figure out how to make it work. Here's what libraries I have that contain 'wx', I've no idea how to get the missing ones. $ find /usr -name '*wx*so' /usr/lib/libwxsvg.so /usr/lib/libwx_gtk2u_ogl-2.8.so /usr/lib/libwx_gtk2u_xrc-2.8.so /usr/lib/libwx_gtk2u_richtext-2.8.so /usr/lib/libwx_gtk2u_gizmos-2.8.so /usr/lib/libwx_gtk2u_fl-2.8.so /usr/lib/libwx_gtk2u_html-2.8.so /usr/lib/libwx_baseu_net-2.8.so /usr/lib/libwx_gtk2u_aui-2.8.so /usr/lib/libwx_gtk2u_stc-2.8.so /usr/lib/libwx_baseu_xml-2.8.so /usr/lib/libwx_gtk2u_core-2.8.so /usr/lib/libwx_gtk2u_gizmos_xrc-2.8.so /usr/lib/libwx_gtk2u_qa-2.8.so /usr/lib/libwx_gtk2u_adv-2.8.so /usr/lib/libwx_baseu-2.8.so /usr/lib/libwx_gtk2u_svg-2.8.so /usr/lib/libwx_gtk2u_gl-2.8.so /usr/lib/libwx_gtk2u_plot-2.8.so Please help ! David. |
|
From: Dave T. <duk...@gm...> - 2011-09-17 17:33:47
|
On 16 September 2011 22:40, D.V. <dav...@gm...> wrote: > Bonsoir List, > > I'm trying to follow the instructions from > http://www.haskell.org/haskellwiki/WxHaskell/Development/Environment > however it's not working. > > - cabal-dev add-source wxdirect works fine > - cabal-dev add-source wxcore has an error > - cabal-dev add-source wx works fine > > wxcore error: > [...] > Configuring wxcore-0.13.1... > setup: Missing dependencies on foreign libraries: > * Missing C libraries: wx_baseu-2.8, wx_baseu_net-2.8, wx_baseu_xml-2.8, > wx_gtk2u_core-2.8, wx_gtk2u_adv-2.8, wx_gtk2u_html-2.8, wx_gtk2u_qa-2.8, > wx_gtk2u_xrc-2.8, wx_gtk2u_aui-2.8, wx_gtk2u_richtext-2.8 > 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. > Building source dist for wxcore-0.13.1... > Preprocessing library wxcore-0.13.1... > Source tarball created: dist/wxcore-0.13.1.tar.gz > > I'm on kubuntu 11.04. > I have a fresh ghc7.0.1 install. > cabal install wx worked fine; I am able to compile and run wxHaskell > programs. > > running with verbose=3 tells me a bunch of > /usr/bin/gcc returned ExitFailure 1 with error message: > /usr/bin/ld: cannot find -lwxmsw28ud_media > /usr/bin/ld: cannot find -lwxmsw28ud_richtext > /usr/bin/ld: cannot find -lwxmsw28ud_aui > /usr/bin/ld: cannot find -lwxmsw28ud_xrc > Thanks for posting so much information, this is very similar to a problem I had with the latest from code.haskell.org. You'll note that those missing libraries contain "msw", i.e. "Microsoft Windows", which us Linux users certainly shouldn't be trying to link against. collect2: ld returned 1 exit status > > a search on google brings a few pages, however I still can't figure > out how to make it work. > > Here's what libraries I have that contain 'wx', I've no idea how to > get the missing ones. > > $ find /usr -name '*wx*so' > /usr/lib/libwxsvg.so > /usr/lib/libwx_gtk2u_ogl-2.8.so > /usr/lib/libwx_gtk2u_xrc-2.8.so > /usr/lib/libwx_gtk2u_richtext-2.8.so > /usr/lib/libwx_gtk2u_gizmos-2.8.so > /usr/lib/libwx_gtk2u_fl-2.8.so > /usr/lib/libwx_gtk2u_html-2.8.so > /usr/lib/libwx_baseu_net-2.8.so > /usr/lib/libwx_gtk2u_aui-2.8.so > /usr/lib/libwx_gtk2u_stc-2.8.so > /usr/lib/libwx_baseu_xml-2.8.so > /usr/lib/libwx_gtk2u_core-2.8.so > /usr/lib/libwx_gtk2u_gizmos_xrc-2.8.so > /usr/lib/libwx_gtk2u_qa-2.8.so > /usr/lib/libwx_gtk2u_adv-2.8.so > /usr/lib/libwx_baseu-2.8.so > /usr/lib/libwx_gtk2u_svg-2.8.so > /usr/lib/libwx_gtk2u_gl-2.8.so > /usr/lib/libwx_gtk2u_plot-2.8.so > > Please help ! > > David. > I see from this you're on wx 2.8 for GTK, and that's okay, we just need to remove those non-Linux libraries, and I'm afraid that involves some hacking (I'm working on a patch to clean this up, I need to get it to the list): You'll need to edit wxcore/Setup.hs thus: On or around line 51 you'll see: > let extra_wx_libs = if ver == "9" [BUNCH OF LIBRARY INCLUDES] Now I use wx 2.9 for GTK, and I've replaced the include list with these: > [ "-lwx_gtk2u_xrc-2.9", "-lwx_gtk2u_stc-2.9", "-lwx_gtk2u_aui-2.9" > , "-lwx_gtk2u_ribbon-2.9", "-lwx_gtk2u_propgrid-2.9", "-lwx_gtk2u_richtext-2.9" > , "-lwx_gtk2u_gl-2.9", "-lstdc++"] Hopefully you can adjust this for your needs, and it would be great if you could send your list back so I can include it in my patch. For the curious: Wondering how the library can still compile with some includes missing? (I believe, perhaps someone can confirm...) If you inspect some of the .cpps under wxcore/src/cpp/ you'll find they do a bunch of ifdefs (for example ifdef wxUSE_MEDIACTRL). Where do these defines come from? Well in Setup.hs you'll find this: > (readProcess "wx-config" ["--libs", "--cppflags"] "") And that "cppflags" flag will print out (or in our case, on Linux, not print out) things like (wxUSE_MEDIACTRL), these are passed to "ccOptions" (from Distribution.InstalledPackageInfo), and the build system then passes these to the CPP linker. Hope this helps, Dave > > > ------------------------------------------------------------------------------ > BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA > http://p.sf.net/sfu/rim-devcon-copy2 > _______________________________________________ > wxhaskell-devel mailing list > wxh...@li... > https://lists.sourceforge.net/lists/listinfo/wxhaskell-devel > |
|
From: Jeremy O'D. <jer...@gm...> - 2011-09-21 16:14:17
|
I wanted to add one thing to this very useful thread, if only to have a record of it somewhere: On 17 September 2011 18:33, Dave Tapley <duk...@gm...> wrote: > For the curious: > Wondering how the library can still compile with some includes missing? > (I believe, perhaps someone can confirm...) > If you inspect some of the .cpps under wxcore/src/cpp/ you'll find they do > a bunch of ifdefs (for example ifdef wxUSE_MEDIACTRL). > Where do these defines come from? > Well in Setup.hs you'll find this: > > (readProcess "wx-config" ["--libs", "--cppflags"] "") > And that "cppflags" flag will print out (or in our case, on Linux, not > print out) things like (wxUSE_MEDIACTRL), these are passed to "ccOptions" > (from Distribution.InstalledPackageInfo), and the build system then passes > these to the CPP linker. > There is a horrible hack in the way this is implemented, which is that wxhaskell actually compiles stub code for all of the APIs for which you don't have the required library, and has the functions return 'benign' (usually NULL) values. I have never liked this - it is down to the fact that wxdirect doesn't handle the preprocessor, so you cannot put conditional compilation in the core wxC headers. Yet another item for the TODO list. Jeremy |
|
From: D.V. <dav...@gm...> - 2011-09-18 07:18:35
|
2011/9/17 Dave Tapley <duk...@gm...>: Bonjour Dave, bonjour list ! > I see from this you're on wx 2.8 for GTK, and that's okay, we just need to > remove those non-Linux libraries, and I'm afraid that involves some hacking > (I'm working on a patch to clean this up, I need to get it to the list): wx2.9 isn't available yet in kubuntu 11.04. > You'll need to edit wxcore/Setup.hs thus: [...] > Hopefully you can adjust this for your needs, and it would be great if you > could send your list back so I can include it in my patch. I will try that as soon as I can, which is, unfortunately, not today. If that works, I will send the list back. > Hope this helps, Well thanks a *lot* for giving me something to try, I hope it helps too. David |
|
From: David V. <dav...@gm...> - 2011-09-20 17:45:50
|
2011/9/18 D.V. <dav...@gm...>:
> 2011/9/17 Dave Tapley <duk...@gm...>:
Bonjour Dave, bonjour list !
>> You'll need to edit wxcore/Setup.hs thus:
> [...]
>> Hopefully you can adjust this for your needs, and it would be great if you
>> could send your list back so I can include it in my patch.
> I will try that as soon as I can, which is, unfortunately, not today.
> If that works, I will send the list back.
Ok here's how I modified the list:
else [ "-lwx_gtk2u_richtext-2.8", "-lwx_gtk2u_aui-2.8"
, "-lwx_gtk2u_xrc-2.8", "-lstdc++" ]
That and the new wiki page helped me go further, but I'm stuck on another error:
src/haskell/Graphics/UI/WXCore.hs:25:11:
Conflicting exports for `wxEVT_FIRST':
`module Graphics.UI.WXCore.WxcClasses' exports
`Graphics.UI.WXCore.WxcClasses.wxEVT_FIRST' imported from
Graphics.UI.WXCore.WxcClasses at
src/haskell/Graphics/UI/WXCore.hs:47:1-36
(defined at
src/haskell/Graphics/UI/WXCore/WxcClassesMZ.hs:17134:1)
`module Graphics.UI.WXCore.WxcDefs' exports
`Graphics.UI.WXCore.WxcDefs.wxEVT_FIRST' imported from
Graphics.UI.WXCore.WxcDefs at
src/haskell/Graphics/UI/WXCore.hs:46:1-33
(defined at
src/haskell/Graphics/UI/WXCore/WxcDefs.hs:2969:1)
src/haskell/Graphics/UI/WXCore.hs:25:11:
Conflicting exports for `wxEVT_NULL':
`module Graphics.UI.WXCore.WxcClasses' exports
`Graphics.UI.WXCore.WxcClasses.wxEVT_NULL' imported from
Graphics.UI.WXCore.WxcClasses at
src/haskell/Graphics/UI/WXCore.hs:47:1-36
(defined at
src/haskell/Graphics/UI/WXCore/WxcClassesMZ.hs:17701:1)
`module Graphics.UI.WXCore.WxcDefs' exports
`Graphics.UI.WXCore.WxcDefs.wxEVT_NULL' imported from
Graphics.UI.WXCore.WxcDefs at
src/haskell/Graphics/UI/WXCore.hs:46:1-33
(defined at
src/haskell/Graphics/UI/WXCore/WxcDefs.hs:2966:1)
David.
|
|
From: Dave T. <duk...@gm...> - 2011-09-20 20:00:06
|
On 20 September 2011 18:45, David Virebayre <dav...@gm...>wrote: > 2011/9/18 D.V. <dav...@gm...>: > > 2011/9/17 Dave Tapley <duk...@gm...>: > > Bonjour Dave, bonjour list ! > > >> You'll need to edit wxcore/Setup.hs thus: > > [...] > >> Hopefully you can adjust this for your needs, and it would be great if > you > >> could send your list back so I can include it in my patch. > > > I will try that as soon as I can, which is, unfortunately, not today. > > If that works, I will send the list back. > > Ok here's how I modified the list: > > else [ "-lwx_gtk2u_richtext-2.8", "-lwx_gtk2u_aui-2.8" > , "-lwx_gtk2u_xrc-2.8", "-lstdc++" ] > > That and the new wiki page helped me go further, but I'm stuck on another > error: > > src/haskell/Graphics/UI/WXCore.hs:25:11: > Conflicting exports for `wxEVT_FIRST': > `module Graphics.UI.WXCore.WxcClasses' exports > `Graphics.UI.WXCore.WxcClasses.wxEVT_FIRST' imported from > Graphics.UI.WXCore.WxcClasses at > src/haskell/Graphics/UI/WXCore.hs:47:1-36 > > (defined at > src/haskell/Graphics/UI/WXCore/WxcClassesMZ.hs:17134:1) > `module Graphics.UI.WXCore.WxcDefs' exports > `Graphics.UI.WXCore.WxcDefs.wxEVT_FIRST' imported from > Graphics.UI.WXCore.WxcDefs at > src/haskell/Graphics/UI/WXCore.hs:46:1-33 > > (defined at > src/haskell/Graphics/UI/WXCore/WxcDefs.hs:2969:1) > > src/haskell/Graphics/UI/WXCore.hs:25:11: > Conflicting exports for `wxEVT_NULL': > `module Graphics.UI.WXCore.WxcClasses' exports > `Graphics.UI.WXCore.WxcClasses.wxEVT_NULL' imported from > Graphics.UI.WXCore.WxcClasses at > src/haskell/Graphics/UI/WXCore.hs:47:1-36 > > (defined at > src/haskell/Graphics/UI/WXCore/WxcClassesMZ.hs:17701:1) > `module Graphics.UI.WXCore.WxcDefs' exports > `Graphics.UI.WXCore.WxcDefs.wxEVT_NULL' imported from > Graphics.UI.WXCore.WxcDefs at > src/haskell/Graphics/UI/WXCore.hs:46:1-33 > > (defined at > src/haskell/Graphics/UI/WXCore/WxcDefs.hs:2966:1) > > David. > Ah! Yes! I had error too, but I can't remember how I resolved it, which makes me think I might have just cleaned everything up and started afresh (just with the modified library list); have you tried that? Dave, |
|
From: David V. <dav...@gm...> - 2011-09-21 15:30:19
|
Bonjour, > Ah! Yes! I had error too, but I can't remember how I resolved it, which > makes me think I might have just cleaned everything up and started afresh > (just with the modified library list); have you tried that? I'm not sure I did this right, but I deleted my wxhaskell directory, issued a darcs get, changed wxcore/Setup.hs again, and re-tried cabal-dev Same result. the darcs get was suspiciouly fast. David |
|
From: Dave T. <duk...@gm...> - 2011-09-21 18:12:58
|
On 21 September 2011 16:30, David Virebayre <dav...@gm...>wrote: > Bonjour, > > > Ah! Yes! I had error too, but I can't remember how I resolved it, which > > makes me think I might have just cleaned everything up and started afresh > > (just with the modified library list); have you tried that? > > I'm not sure I did this right, but I deleted my wxhaskell directory, > issued a darcs get, changed wxcore/Setup.hs again, and re-tried > cabal-dev > > Same result. > > the darcs get was suspiciouly fast. > > David > Aha, I did do something to fix this! Here's my 'probably breaks other things but hasn't caused me a problem as of yet' fix: (I really need to start getting all my local patches reviewed and pushed to code.haskell.org..) [wxEventType is an extern type in wxWidgets 2.9.2 duk...@gm...**20110729050251 Ignore-this: a709f60a95638a6ae87b570dc7d1072d Compare wxEventType in include/wx/event.h in wxWidgets 2.8.10 and 2.9.2, you will see that the latter contains the lines: extern WXDLLIMPEXP_BASE const wxEventType wxEVT_NULL; extern WXDLLIMPEXP_BASE const wxEventType wxEVT_FIRST; This was causing a "Conflicting exports" error as detailed here: http://sourceforge.net/mailarchive/message.php?msg_id=27810904 Because wxc_glue.h previously exported these as ints. ] hunk ./wxcore/src/include/wxc_glue.h 18 -int expEVT_NULL();^M$ -int expEVT_FIRST();^M$ |
|
From: Eric Y. K. <eri...@gm...> - 2011-09-21 18:22:28
|
On Wed, Sep 21, 2011 at 17:30:13 +0200, David Virebayre wrote: > the darcs get was suspiciouly fast. Files from modern (hashed) darcs repositories are cached, which may be why you are seeing this. -- Eric Kow <http://erickow.com> |