From: John L. <jla...@gm...> - 2006-01-20 22:08:59
|
On 1/20/06, Francesco Montorsi <f18...@ya...> wrote: > Hi, > > John Labenski ha scritto: > > On 1/20/06, Francesco Montorsi <f18...@ya...> wrote: > > > >>make[1]: Entering directory `/home/frm/work/wxLua/modules/wxlua/src' > >>g++ -shared -o /usr/local/lib/libwx_gtk2ud_wxlua-2.7.so.1.5.0 internal.= o > >>wxlbind.o wxlcallb.o wxlintrp.o wxlstate.o > >>/usr/bin/ld: internal.o: relocation R_X86_64_32 against `a local symbol= ' > >>can not be used when making a shared object; recompile with -fPIC > >>internal.o: could not read symbols: Bad value > >>collect2: ld returned 1 exit status > >>make[1]: *** [/usr/local/lib/libwx_gtk2ud_wxlua-2.7.so.1.5.0] Error 1 > >>make[1]: Leaving directory `/home/frm/work/wxLua/modules/wxlua/src' > >>make: *** [wxLuaLib] Error 2 > >>frm@genius:~/work/wxLua/apps/wxlua/src$ > >> > >>And this did not work with both a static and a shared build of wxWidget= s. > >> > >>Last, I searched for the unresolved linker symbols: i.e. > >>s_wxluatag_wxWindow, s_wxluatag_wxBitmap, s_wxluatag_wxEvtHandler, > >>s_wxluatag_wxEvent and I found that they are all declared as extern > >>symbols at the beginning of some CPP files (like wxlstate.cpp) but then > >>they are not defined anywhere. > >> > >>How did you manage to compile these sources ? > >>Do I have to run some bind generator ? > >>Or you have some un-committed sources in your local copy ? > > > > > > You have to run make in bindings/wxwidgets to generate the bindings in > > modules/wxbind/. This is because of the number of changes being made > > to the binding generator. > grr; I always forgot about that step. > > Could we commit the generated bindings in CVS ? Ok, I'll do that this weekend. > We also really need some way to: > 1) produce luasetup.h from luasetup.h.in (maybe adding 'wx' prefix to > both as we discussed time ago): I had to manually change it to exclude > the contrib wx headers which I do not have installed and wxFontMapper > (see point #3) This is supposed to be like wxWidgets/include/wx/msw/setup0.h where you select what you want included with your wxLua bindings build. I will change it to wxluasetup.h this weekend. > 2) fix warnings about non-existing symbols (I get ton of messages like: > > ./modules/wxbind/include/wxbind.h:127:6: warning: "wxUSE_WAVE" is not > defined > ./../modules/wxbind/include/wxbind.h:328:5: warning: > "wxLUA_USE_wxCriticalSection" is not defined > ./../modules/wxbind/include/wxbind.h:506:5: warning: > "wxLUA_USE_wxCriticalSectionLocker" is not defined > ./../modules/wxbind/include/wxbind.h:919:5: warning: > "wxLUA_USE_wxCriticalSectionLocker" is not defined > ./../modules/wxbind/include/wxbind.h:1038:6: warning: "wxUSE_WAVE" is > not defined > ... > ) These should all be defined! I'll get a new cvs head checkout at home in linux (mine is probably a month old) and see if I get them. The wxLUA_USE_XXX are certainly defined in luasetup.h though. > 3) now compilation stops on my file: > > ./wxbind/src/gdi.cpp:2289: error: 'class wxFontMapper' has no member > named 'SetConfig' > > this is probably because I use wxCVS. > I see in gdi.i: > > %class %noclassinfo wxFontMapper > .... > void SetConfig(wxConfigBase *config =3D NULL) > ... > %endclass > > can something like > %class %noclassinfo wxFontMapper .... !%wxchkver27 void SetConfig(wxConfigBase *config =3D NULL) ... %endclass Again, I'll do a wxWidgets cvs update and see if I get the same errors and fix them. > 4) disabling wxFontMapper I now get all the errors in the attached log. > This is because I'm on a 64bit machine. > Is wxbind/src/wx_class.cpp something automatically generated ? > If yes, the wxlua wrapper generator should be changed to output (long) > casts instead of (int) ones... There was no log attached, could you resend it? Regards, John Labenski |