From: Daniell F. <win...@gm...> - 2007-01-20 05:28:48
|
Just to continue my saga to figure out how to compile wxPerl on OS X, I think I have figured out a least partially way I can't get past the Makefile.PL stage. I am getting errors like: No such 'link' library: 'adv' at /Users/dfreed/sourcecode/WxPerl-0.67/ build/Wx/build/MakeMaker.pm line 206 When running this stage. I ran this through the debugger, and it appears that wxPerl is expecting to find libs like: adv, core, base, html when calling Alien::wxWidgets->libraries, at least the Makefile.PL script is passing a list of names like this to that Alien function. When I dug into what was going on in Alien::wxWidgets, I see that it has a file: /Library/Perl/5.8.6/darwin-thread- multi-2level/Alien/wxWidgets/Config/mac_2_8_0_gcc_3_4.pm which appears to be generated when Alien::wxWidgets is built. This file defines a hash that contains wx-config information in it. The keys of the _libraries hash are all a single letter for example: '_libraries' => { 'e' => { 'link' => '-lwx_mac_core-2.8', 'dll' => 'libwx_mac_core-2.8.dylib' }, 'c' => { 'link' => '-lwx_mac_xrc-2.8', 'dll' => 'libwx_mac_xrc-2.8.dylib' }, 'e' => { 'link' => '-lwx_base_carbon-2.8', 'dll' => 'libwx_base_carbon-2.8.dylib' }, .... But it looks like the wxPerl is passing it keys like 'core' and 'xrc', etc. Somehow the hash keys appear to only be the last letter of the library name. I didn't dig to see why that is. There were also several important libraries not in the hash at all. After hand editing the file to this: '_libraries' => { 'core' => { 'link' => '-lwx_mac_core-2.8', 'dll' => 'libwx_mac_core-2.8.dylib' }, 'xrc' => { 'link' => '-lwx_mac_xrc-2.8', 'dll' => 'libwx_mac_xrc-2.8.dylib' }, 'base' => { 'link' => '-lwx_base_carbon-2.8', 'dll' => 'libwx_base_carbon-2.8.dylib' }, 'qa' => { 'link' => '-lwx_mac_qa-2.8', 'dll' => 'libwx_mac_qa-2.8.dylib' }, 'adv' => { 'link' => '-lwx_mac_adv-2.8', 'dll' => 'libwx_mac_adv-2.8.dylib' }, 'aui' => { 'link' => '-lwx_mac_aui-2.8', 'dll' => 'libwx_mac_aui-2.8.dylib' }, 'richtext' => { 'link' => '-lwx_mac_richtext-2.8', 'dll' => 'libwx_mac_richtext-2.8.dylib' }, 'html' => { 'link' => '-lwx_mac_html-2.8', 'dll' => 'libwx_mac_html-2.8.dylib' }, 'net' => { 'link' => '- lwx_base_carbon_net-2.8', 'dll' => 'libwx_base_carbon_net-2.8.dylib' }, 'xml' => { 'link' => '- lwx_base_carbon_xml-2.8', 'dll' => 'libwx_base_carbon_xml-2.8.dylib' }, 'stc' => { 'link' => '-lwx_mac_stc-2.8', 'dll' => 'libwx_mac_stc-2.8.dylib' }, }, I can now run perl Makefile.PL to completion and build wxPerl. I'm still having some problems. Just loading the Wx module is now causing an error: $ wxperl use Wx; Can't load '/Library/Perl/5.8.6/darwin-thread-multi-2level/auto/Wx/ Wx.bundle' for module Wx: dlopen(/Library/Perl/5.8.6/darwin-thread- multi-2level/auto/Wx/Wx.bundle, 1): Symbol not found: __ZTV11wxMediaCtrl Referenced from: /Library/Perl/5.8.6/darwin-thread-multi-2level/ auto/Wx/Wx.bundle Expected in: dynamic lookup at - line 1 Compilation failed in require at - line 1. BEGIN failed--compilation aborted at - line 1. I'm not sure what the heck this is about. But I am closing in... If anyone has anything thoughts that would help, they would be very much appreciated. Thanks, Dan Freed On Jan 19, 2007, at 2:53 PM, Eric Wilhelm wrote: > # from Beule, Franck > # on Friday 19 January 2007 06:01 am: > >> And for my conclusion, if it's hard to compile on Windows (someone >> succeded on this task, >> but he didn't explained how) and impossible to compile on Linux and >> MacOSX, >> does someone really use wxPerl ??? > > Yes, it is quite possible. No, it is not easy. IME, Alien::WxWidgets > can be a bit of a pain. I've not managed to successfully compile on > windows, but getting the right tools installed on windows is a huge > pain. I built wxGTK on linux without any trouble, but > Alien::WxWidgets > is still a speed-bump there. The mac works too, though getting it > built as a universal binary is a huge pain because apple decided to > put > too much of the smarts into xcode and CPAN isn't having any of that. > > Which is why dotReader has to provide out-of-the-box bundles for all > three platforms. That's not easy. Dependency scanning is the current > speedbump. > > Consider the challenges: > > o compiling wxWidgets without user intervention (Alien) > o compatibility with multiple wxWidgets versions > o compatibility with multiple perl versions > o various flaky windows environments (make, nmake, gcc, cc.exe, etc) > o compatibility with multiple mac versions > (mac testing is expensive: 1 OS per machine, no virtualizing, > and apple end-of-lifes the old xcode on day one of the next OS) > > And that's just the overhead to developing the perl binding. > Unfortunately, until more people pitch in to strawberry perl, > automated > cross-platform testing, etc, this isn't going to get easier for > end-users either. wxPerl itself is very well done, but these huge > barriers to entry make it hard to test, let alone contribute. > > IMNSHO, the spam on this list doesn't help much. The wiki is also > a bit > slow from this part of the world. I think wxPerl's users, code, and > documentation would really benefit from moving to the perl.org > infrastructure (mail, svn, probably even hosting.) > > --Eric > -- > "Matter will be damaged in direct proportion to its value." > --Murphy's Constant > --------------------------------------------------- > http://scratchcomputing.com > --------------------------------------------------- > > ---------------------------------------------------------------------- > --- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to > share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php? > page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > wxperl-users mailing list > wxp...@li... > https://lists.sourceforge.net/lists/listinfo/wxperl-users Daniell Freed win...@gm... Bereshit bara Elohim et hashamayim ve'et ha'arets... |