Hi Robin,
I'm trying to build the wxMozilla Py extension for 2.5.3.1, but now I'm getting a bunch of wxSizer-related undefined symbols when linking mozilla_wrap.cpp. ;-/ The process I took is as follows:
1) Download wxPython-src-2.5.3.1 and wxPython-2.5-win32-devel and untar them.
2) copy wxPython-2.5-win32-devel into wxPython-src tree
3) copy setup.h from /lib/vc_dll/mswh to /include/wx (yes, I know it's a hack, but I'll clean up the process once I've got it building properly)
4) delete the wxMozilla Python extension 'build' folder for a clean build
5) Build SWIG 1.3.22 with your patch on Windows
6) call "setup.py install WXPY_SRC=<wxPython-src dir> USE_SWIG=1 SWIG=<swig.exe file location>"
When I do this, at the mozilla_wrap.cpp linking phase, I get a bunch of wxSizer undefineds. It is linking to <wxPython-src>/lib/vc_dll/wxmsw25h.lib, BTW. The only common thread I can see is that they're all inline functions. Below is the error messages MSVC6 spit out. AFAICT these functions aren't something that should get conditionally compiled, so I'm a bit stumped as to why these symbols are showing up as undefined... Any guess as to what may be going on?
Thanks,
Kevin
Errors:
···
--------------------------------------------------------------------
wxMozillaWindow.obj : error LNK2001: unresolved external symbol "public: virtual
void __thiscall wxSizer::PrependStretchSpacer(int)" (?PrependStretchSpacer@wxSi
zer@@UAEXH@Z)
cstmdlg.obj : error LNK2001: unresolved external symbol "public: virtual void __
thiscall wxSizer::PrependStretchSpacer(int)" (?PrependStretchSpacer@wxSizer@@UAE
XH@Z)
wxMozillaWindow.obj : error LNK2001: unresolved external symbol "public: virtual
void __thiscall wxSizer::PrependSpacer(int)" (?PrependSpacer@wxSizer@@UAEXH@Z)
cstmdlg.obj : error LNK2001: unresolved external symbol "public: virtual void __
thiscall wxSizer::PrependSpacer(int)" (?PrependSpacer@wxSizer@@UAEXH@Z)
wxMozillaWindow.obj : error LNK2001: unresolved external symbol "public: virtual
void __thiscall wxSizer::Prepend(class wxWindow *,int,int,int,class wxObject *)
" (?Prepend@wxSizer@@UAEXPAVwxWindow@@HHHPAVwxObject@@@Z)
cstmdlg.obj : error LNK2001: unresolved external symbol "public: virtual void __
thiscall wxSizer::Prepend(class wxWindow *,int,int,int,class wxObject *)" (?Prep
end@wxSizer@@UAEXPAVwxWindow@@HHHPAVwxObject@@@Z)
wxMozillaWindow.obj : error LNK2001: unresolved external symbol "public: virtual
void __thiscall wxSizer::Prepend(class wxSizer *,int,int,int,class wxObject *)"
(?Prepend@wxSizer@@UAEXPAV1@HHHPAVwxObject@@@Z)
cstmdlg.obj : error LNK2001: unresolved external symbol "public: virtual void __
thiscall wxSizer::Prepend(class wxSizer *,int,int,int,class wxObject *)" (?Prepe
nd@wxSizer@@UAEXPAV1@HHHPAVwxObject@@@Z)
wxMozillaWindow.obj : error LNK2001: unresolved external symbol "public: virtual
void __thiscall wxSizer::Prepend(int,int,int,int,int,class wxObject *)" (?Prepe
nd@wxSizer@@UAEXHHHHHPAVwxObject@@@Z)
cstmdlg.obj : error LNK2001: unresolved external symbol "public: virtual void __
thiscall wxSizer::Prepend(int,int,int,int,int,class wxObject *)" (?Prepend@wxSiz
er@@UAEXHHHHHPAVwxObject@@@Z)
wxMozillaWindow.obj : error LNK2001: unresolved external symbol "public: virtual
void __thiscall wxSizer::Prepend(class wxSizerItem *)" (?Prepend@wxSizer@@UAEXP
AVwxSizerItem@@@Z)
cstmdlg.obj : error LNK2001: unresolved external symbol "public: virtual void __
thiscall wxSizer::Prepend(class wxSizerItem *)" (?Prepend@wxSizer@@UAEXPAVwxSize
rItem@@@Z)
wxMozillaWindow.obj : error LNK2001: unresolved external symbol "public: virtual
void __thiscall wxSizer::InsertStretchSpacer(unsigned int,int)" (?InsertStretch
Spacer@wxSizer@@UAEXIH@Z)
cstmdlg.obj : error LNK2001: unresolved external symbol "public: virtual void __
thiscall wxSizer::InsertStretchSpacer(unsigned int,int)" (?InsertStretchSpacer@w
xSizer@@UAEXIH@Z)
wxMozillaWindow.obj : error LNK2001: unresolved external symbol "public: virtual
void __thiscall wxSizer::InsertSpacer(unsigned int,int)" (?InsertSpacer@wxSizer
@@UAEXIH@Z)
cstmdlg.obj : error LNK2001: unresolved external symbol "public: virtual void __
thiscall wxSizer::InsertSpacer(unsigned int,int)" (?InsertSpacer@wxSizer@@UAEXIH
@Z)
wxMozillaWindow.obj : error LNK2001: unresolved external symbol "public: virtual
void __thiscall wxSizer::Insert(unsigned int,class wxWindow *,int,int,int,class
wxObject *)" (?Insert@wxSizer@@UAEXIPAVwxWindow@@HHHPAVwxObject@@@Z)
cstmdlg.obj : error LNK2001: unresolved external symbol "public: virtual void __
thiscall wxSizer::Insert(unsigned int,class wxWindow *,int,int,int,class wxObjec
t *)" (?Insert@wxSizer@@UAEXIPAVwxWindow@@HHHPAVwxObject@@@Z)
wxMozillaWindow.obj : error LNK2001: unresolved external symbol "public: virtual
void __thiscall wxSizer::Insert(unsigned int,class wxSizer *,int,int,int,class
wxObject *)" (?Insert@wxSizer@@UAEXIPAV1@HHHPAVwxObject@@@Z)
cstmdlg.obj : error LNK2001: unresolved external symbol "public: virtual void __
thiscall wxSizer::Insert(unsigned int,class wxSizer *,int,int,int,class wxObject
*)" (?Insert@wxSizer@@UAEXIPAV1@HHHPAVwxObject@@@Z)
wxMozillaWindow.obj : error LNK2001: unresolved external symbol "public: virtual
void __thiscall wxSizer::Insert(unsigned int,int,int,int,int,int,class wxObject
*)" (?Insert@wxSizer@@UAEXIHHHHHPAVwxObject@@@Z)
cstmdlg.obj : error LNK2001: unresolved external symbol "public: virtual void __
thiscall wxSizer::Insert(unsigned int,int,int,int,int,int,class wxObject *)" (?I
nsert@wxSizer@@UAEXIHHHHHPAVwxObject@@@Z)
wxMozillaWindow.obj : error LNK2001: unresolved external symbol "public: virtual
void __thiscall wxSizer::AddStretchSpacer(int)" (?AddStretchSpacer@wxSizer@@UAE
XH@Z)
cstmdlg.obj : error LNK2001: unresolved external symbol "public: virtual void __
thiscall wxSizer::AddStretchSpacer(int)" (?AddStretchSpacer@wxSizer@@UAEXH@Z)
wxMozillaWindow.obj : error LNK2001: unresolved external symbol "public: virtual
void __thiscall wxSizer::AddSpacer(int)" (?AddSpacer@wxSizer@@UAEXH@Z)
cstmdlg.obj : error LNK2001: unresolved external symbol "public: virtual void __
thiscall wxSizer::AddSpacer(int)" (?AddSpacer@wxSizer@@UAEXH@Z)
wxMozillaWindow.obj : error LNK2001: unresolved external symbol "public: virtual
void __thiscall wxSizer::Add(class wxWindow *,int,int,int,class wxObject *)" (?
Add@wxSizer@@UAEXPAVwxWindow@@HHHPAVwxObject@@@Z)
cstmdlg.obj : error LNK2001: unresolved external symbol "public: virtual void __
thiscall wxSizer::Add(class wxWindow *,int,int,int,class wxObject *)" (?Add@wxSi
zer@@UAEXPAVwxWindow@@HHHPAVwxObject@@@Z)
wxMozillaWindow.obj : error LNK2001: unresolved external symbol "public: virtual
void __thiscall wxSizer::Add(class wxSizer *,int,int,int,class wxObject *)" (?A
dd@wxSizer@@UAEXPAV1@HHHPAVwxObject@@@Z)
cstmdlg.obj : error LNK2001: unresolved external symbol "public: virtual void __
thiscall wxSizer::Add(class wxSizer *,int,int,int,class wxObject *)" (?Add@wxSiz
er@@UAEXPAV1@HHHPAVwxObject@@@Z)
wxMozillaWindow.obj : error LNK2001: unresolved external symbol "public: virtual
void __thiscall wxSizer::Add(int,int,int,int,int,class wxObject *)" (?Add@wxSiz
er@@UAEXHHHHHPAVwxObject@@@Z)
cstmdlg.obj : error LNK2001: unresolved external symbol "public: virtual void __
thiscall wxSizer::Add(int,int,int,int,int,class wxObject *)" (?Add@wxSizer@@UAEX
HHHHHPAVwxObject@@@Z)
wxMozillaWindow.obj : error LNK2001: unresolved external symbol "public: virtual
void __thiscall wxSizer::Add(class wxSizerItem *)" (?Add@wxSizer@@UAEXPAVwxSize
rItem@@@Z)
cstmdlg.obj : error LNK2001: unresolved external symbol "public: virtual void __
thiscall wxSizer::Add(class wxSizerItem *)" (?Add@wxSizer@@UAEXPAVwxSizerItem@@@
Z)
build\lib.win32-2.3\wx\_mozilla.pyd : fatal error LNK1120: 17 unresolved externa
ls