Hello mark,
Below is the output from 'cpan -i alien::wxWidgets' run in my cygwin shell.
=====
cpan -i Alien::wxWidgets
Going to read '/home/EricB/.cpan/Metadata'
Database was generated on Fri, 22 Jun 2012 10:43:03 GMT
Alien::wxWidgets is up to date (0.59).
=====
The wxWidgets version i compiled in cygwin is not wxMSW, but wxGTK2.
This works fine. Then i tried installing alien::wxWidgets from cpan by
running the command above. This installation fails by default. Then i
went into the .cpan directory and ran 'perl Makefile.PL' which fails
because it's coded to fail. I then disabled the cygwin test in Build.PL
, ran perl Makefile.PL. It asks to rebuild wxWidgets. there i replied
no, because it was already built and installed. Then i ran make, which
gave me an error '-lwxregexu-2.8 at
inc/My/Build/Any_wx_config_Bakefile.pm line 38.' To solve this i simply
change line 32 in' inc/My/Build/Any_wx_config_Bakefile.pm' from
"$libname_re = '-l(.*_(\w+)-.*)';" into "$libname_re =
'-l(.*_?(\w+)-.*)';" because not all libs still have an _. Then i ran
make again and it built without any problem. Afterwards make install and
alien::wxWidgets installed without any problem.
Then i tried to compile wxperl.
1st problem there is that it fails with "no such 'link' library: 'adv'
build/wx/build/makemaker.pm line 224".
This is due to a problem in Alien. The config file in
"/usr/lib/perl5/site_perl/5.14/i686-cygwin-threads-64int/Alien/wxWidgets/Config"
is incomplete.
the "'_libraries' => {},"" is empty and should become
'_libraries' => {
'core' => {
'link' =>
'-L/usr/local/lib/libwx_gtk2u_core-2.8.a',
'dll' => 'libwx_gtk2u_core-2.8.a'
},
'xrc' => {
'link' =>
'-L/usr/local/lib/libwx_gtk2u_xrc-2.8.a',
'dll' => 'libwx_gtk2u_xrc-2.8.a'
},
'base' => {
'link' =>
'-L/usr/local/lib/libwx_baseu-2.8.a',
'dll' => 'libwx_baseu-2.8.a'
},
'qa' => {
'link' =>
'-L/usr/local/lib/libwx_gtk2u_qa-2.8.a',
'dll' => 'libwx_gtk2u_qa-2.8.a'
},
'adv' => {
'link' =>
'-L/usr/local/lib/libwx_gtk2u_adv-2.8.a',
'dll' => 'libwx_gtk2u_adv-2.8.a'
},
'aui' => {
'link' =>
'-L/usr/local/lib/libwx_gtk2u_aui-2.8.a',
'dll' => 'libwx_gtk2u_aui-2.8.a '
},
'richtext' => {
'link' =>
'-L/usr/local/lib/libwx_gtk2u_richtext-2.8.a',
'dll' => 'libwx_gtk2u_richtext-2.8.a'
},
'html' => {
'link' =>
'-L/usr/local/lib/libwx_gtk2u_html-2.8.a',
'dll' => 'libwx_gtk2u_html-2.8.a'
},
'net' => {
'link' =>
'-L/usr/local/lib/libwx_baseu_net-2.8.a',
'dll' => 'libwx_baseu_net-2.8.a'
},
'xml' => {
'link' =>
'-L/usr/local/lib/libwx_baseu_xml-2.8.a',
'dll' => 'libwx_baseu_xml-2.8.a'
},
'stc' => {
'link' => '-L/usr/local/lib/libwx_gtk2u_stc-2.8.a',
'dll' => 'libwx_gtk2u_stc-2.8.a'
},
},
After this running perl Makefile.PL runs nicely. Then the next errors
are about the undefined references when making the dll's from the .o
files. These errors can be resolved by manually adding the libraries
from 'wx-config --libs' which are correctly given in the config file in
file in
"/usr/lib/perl5/site_perl/5.14/i686-cygwin-threads-64int/Alien/wxWidgets/Config"
but get messed up by the wxPerl makefile .
I only tried to manually add the libraries for the 1st ext dll richtext
because i hope u can get me an easier way to decently include them.
regards,
eric
On 13/06/2012 22:59, Eric Breynaert wrote:
Hello Mark,
I found out the main problem is that the extra libraries i'm passing
to Makefile.PL don't end up in the final makefiles. If i manually
include them in the separate Makefiles the compilation seems to work.
i'm running
perl Makefile.PL --extra-libs="`wx-config --libs`"
--extra-cflags="`wx-config --cppflags`"
at the top of the Makefiles the "# LIBS => q[ " lines reflect
the libraries passed by --extra-libs="`wx-config --libs`" , but the
"EXTRALIBS = " lines in the do not contain the libraries passed
initially.
Any clue how to solve this ?
regards
eric
On 10/06/2012 21:20, Eric Breynaert wrote:
Did anyone succeed lately in compiling WXperl on cygwin. I know
cygwin is not supported, but I successfully built all prereq,
including Alien::wxWidgets i'm only stuck with the wxperl.
When i try to make it gives alot of erros such as
RichText.o:RichText.c:(.text+0x3bdcd): undefined reference to `vtable
for wxTopLevelWindow'
Any help would be welcome
Thanks
Eric
--
Eric Breynaert
Centrum voor Oppervlaktechemie en Katalyse
Departement Microbiële en moleculaire systemen (M²S) - KU Leuven
Kasteelpark Arenberg 23 - bus 2461
B-3001 Leuven
Tel: +3216321598
Fax: +3216321998