Author Topic: wxWidgets-2.8.7 not linking  (Read 8023 times)

Offline Zoom

  • Single posting newcomer
  • *
  • Posts: 6
wxWidgets-2.8.7 not linking
« on: April 20, 2008, 09:15:40 pm »
I have installed new library wxWidgets-2.8.7 but it has now for some reason new names in "a" files:

libwxbase28.a
libwxbase28_net.a
libwxbase28_xml.a
libwxexpat.a
libwxjpeg.a
libwxmsw28_adv.a
libwxmsw28_aui.a
libwxmsw28_core.a
libwxmsw28_html.a
libwxmsw28_media.a
libwxmsw28_richtext.a
libwxmsw28_xrc.a
libwxpng.a
libwxregex.a
libwxtiff.a
libwxzlib.a

I tried to change in "Link Libraries" but the project not linking...

Or how to me to compile wxWidgets-2.8.7 (WinXP & MinGW) so that at it there were former names?
libwxexpat.a
libwxjpeg.a
libwxmsw28.a
libwxpng.a
libwxregex.a
libwxtiff.a
libwxzlib.a

Thanks for help!

Offline Deschamps

  • Multiple posting newcomer
  • *
  • Posts: 120
Re: wxWidgets-2.8.7 not linking
« Reply #1 on: April 20, 2008, 09:57:14 pm »
All those 'libwx*' libraries are built in that manner when you compile your wxMSW sources without specifying a monolithic build.
So, rebuilding your libraries with the 'MONOLITHIC=1' parameter will do the job.

You could also consider building shared libraries, so your binaries could be smaller.

Regads.
Misquotations are the only quotations that are never misquoted

Offline Zoom

  • Single posting newcomer
  • *
  • Posts: 6
Re: wxWidgets-2.8.7 not linking
« Reply #2 on: April 20, 2008, 10:38:39 pm »
Deschamps, Thanks!
I have compiled:
mingw32-make-f makefile.gcc BUILD=release MONOLITHIC=1
Now all works!

Offline Zoom

  • Single posting newcomer
  • *
  • Posts: 6
Re: wxWidgets-2.8.7 not linking
« Reply #3 on: April 21, 2008, 12:13:27 am »
I have tried to compile still as you have advised build with shared libraries

mingw32-make-f makefile.gcc BUILD=release SHARED=1 MONOLITHIC=1 UNICODE=0
--
libwxexpat.a
libwxjpeg.a
libwxmsw28.a
libwxpng.a
libwxregex.a
libwxtiff.a
libwxzlib.a
wxmsw28_gcc_custom.dll
--
Then I have made the new project with settings:

wxWidgets Library Settings

X Use wxWidgets DLL
X wxWidgets Is built as a monolithic library
_ Enable Unicode




But linker prints already new errors...


-------------- Build: Release in test3 ---------------

Linking executable: bin\Release\test3.exe
obj\Release\test3Main.o(.text+0x763):test3Main.cpp: undefined reference to `wxFont::~wxFont()'
obj\Release\test3Main.o(.text+0x77d):test3Main.cpp: undefined reference to `wxFont::SetPointSize(int)'
obj\Release\test3Main.o(.text+0x11cd):test3Main.cpp: undefined reference to `wxWindowBase::SetSizer(wxSizer*, bool)'
obj\Release\test3Main.o(.text+0x1297):test3Main.cpp: undefined reference to `wxFont::~wxFont()'
obj\Release\test3Main.o(.text+0x158f):test3Main.cpp: undefined reference to `_imp___ZN9wxControlD2Ev'
obj\Release\test3Main.o(.text+0x15a6):test3Main.cpp: undefined reference to `wxFont::~wxFont()'
obj\Release\test3Main.o(.text+0x15be):test3Main.cpp: undefined reference to `wxFont::~wxFont()'
obj\Release\test3Main.o(.text+0x16cc):test3Main.cpp: undefined reference to `_imp___ZN9wxControlD2Ev'
obj\Release\test3Main.o(.text+0x1774):test3Main.cpp: undefined reference to `_imp___ZN9wxControlD2Ev'
obj\Release\test3Main.o(.text+0x1861):test3Main.cpp: undefined reference to `_imp___ZN9wxControlD2Ev'
obj\Release\test3Main.o(.text+0x1f53):test3Main.cpp: undefined reference to `wxFont::~wxFont()'
obj\Release\test3Main.o(.text+0x1f6d):test3Main.cpp: undefined reference to `wxFont::SetPointSize(int)'
obj\Release\test3Main.o(.text+0x29bd):test3Main.cpp: undefined reference to `wxWindowBase::SetSizer(wxSizer*, bool)'
obj\Release\test3Main.o(.text+0x2a87):test3Main.cpp: undefined reference to `wxFont::~wxFont()'
obj\Release\test3Main.o(.text+0x2d7f):test3Main.cpp: undefined reference to `_imp___ZN9wxControlD2Ev'
obj\Release\test3Main.o(.text+0x2d96):test3Main.cpp: undefined reference to `wxFont::~wxFont()'
obj\Release\test3Main.o(.text+0x2dae):test3Main.cpp: undefined reference to `wxFont::~wxFont()'
obj\Release\test3Main.o(.text+0x2ebc):test3Main.cpp: undefined reference to `_imp___ZN9wxControlD2Ev'
obj\Release\test3Main.o(.text+0x2f64):test3Main.cpp: undefined reference to `_imp___ZN9wxControlD2Ev'
obj\Release\test3Main.o(.text+0x3051):test3Main.cpp: undefined reference to `_imp___ZN9wxControlD2Ev'
obj\Release\test3Main.o(.text+0x326c):test3Main.cpp: undefined reference to `wxWindowBase::Close(bool)'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x24):test3Main.cpp: undefined reference to `wxWindowBase::TryValidator(wxEvent&)'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x28):test3Main.cpp: undefined reference to `wxWindowBase::TryParent(wxEvent&)'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x4c):test3Main.cpp: undefined reference to `wxWindow::GetLabel() const'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x58):test3Main.cpp: undefined reference to `wxWindow::GetLayoutDirection() const'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x60):test3Main.cpp: undefined reference to `wxWindow::AdjustForLayoutDirection(int, int, int) const'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x68):test3Main.cpp: undefined reference to `wxWindow::Lower()'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x6c):test3Main.cpp: undefined reference to `wxWindowBase::GetClientAreaOrigin() const'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x70):test3Main.cpp: undefined reference to `wxWindowBase::Fit()'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x74):test3Main.cpp: undefined reference to `wxWindowBase::FitInside()'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x98):test3Main.cpp: undefined reference to `wxWindowBase::DoGetVirtualSize() const'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0xa0):test3Main.cpp: undefined reference to `wxWindowBase::GetWindowBorderSize() const'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0xb4):test3Main.cpp: undefined reference to `wxWindowBase::IsShownOnScreen() const'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0xb8):test3Main.cpp: undefined reference to `wxWindow::SetWindowStyleFlag(long)'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0xc4):test3Main.cpp: undefined reference to `wxWindow::SetExtraStyle(long)'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0xc8):test3Main.cpp: undefined reference to `wxWindowBase::MakeModal(bool)'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0xd8):test3Main.cpp: undefined reference to `wxWindow::SetFocusFromKbd()'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0xe4):test3Main.cpp: undefined reference to `wxWindowBase::Navigate(int)'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0xec):test3Main.cpp: undefined reference to `wxWindow::Reparent(wxWindowBase*)'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0xf0):test3Main.cpp: undefined reference to `wxWindowBase::AddChild(wxWindowBase*)'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0xf8):test3Main.cpp: undefined reference to `wxWindowBase::SetValidator(wxValidator const&)'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x100):test3Main.cpp: undefined reference to `wxWindowBase::Validate()'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x104):test3Main.cpp: undefined reference to `wxWindowBase::TransferDataToWindow()'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x108):test3Main.cpp: undefined reference to `wxWindowBase::TransferDataFromWindow()'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x10c):test3Main.cpp: undefined reference to `wxWindowBase::InitDialog()'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x114):test3Main.cpp: undefined reference to `wxWindow::RegisterHotKey(int, int, int)'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x118):test3Main.cpp: undefined reference to `wxWindow::UnregisterHotKey(int)'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x11c):test3Main.cpp: undefined reference to `wxWindow::WarpPointer(int, int)'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x128):test3Main.cpp: undefined reference to `wxWindow::Update()'
obj\Release\test3Main.o(.rdata$_ZTV11test3Dialog+0x12c):test3Main.cpp: undefined reference to `wxWindowBase::ClearBackground()'
Process terminated with status 1 (0 minutes, 18 seconds)
50 errors, 0 warnings
 

Offline dje

  • Lives here!
  • ****
  • Posts: 683
Re: wxWidgets-2.8.7 not linking
« Reply #4 on: April 21, 2008, 12:21:27 am »
Hi !

mingw32-make-f makefile.gcc BUILD=release SHARED=1 MONOLITHIC=1 UNICODE=0
...
_ Enable Unicode

You have to compile wxWidgets with UNICODE=1
Code: [Select]
mingw32-make-f makefile.gcc BUILD=release SHARED=1 MONOLITHIC=1 UNICODE=1
Dje

Offline Zoom

  • Single posting newcomer
  • *
  • Posts: 6
Re: wxWidgets-2.8.7 not linking
« Reply #5 on: April 21, 2008, 03:14:25 am »
Hi, Dje!
Has compiled with UNICODE=1, the same result...
Maybe error in gcc?
What version gcc you will recommend?
Or to download Code::Blocks together with MinGW - codeblocks-8.02mingw-setup.exe?
--

mingw32-g++.exe -v
Reading specs from C:/MinGWStudio/MinGW/bin/../lib/gcc-lib/mingw32/3.3.1/specs
Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host=
mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable
-languages=c,c++,f77,objc,ada,java --disable-win32-registry --disable-shared --e
nable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x --enable-ja
va-gc=boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchroniz
ation
Thread model: win32
gcc version 3.3.1 (mingw special 20030804-1)


Offline dje

  • Lives here!
  • ****
  • Posts: 683
Re: wxWidgets-2.8.7 not linking
« Reply #6 on: April 21, 2008, 09:00:09 am »
Hi !

"Official" version is 3.4.5 on XP.
You can download a working version on C::B site (Vista compatible).

Dje

Offline Deschamps

  • Multiple posting newcomer
  • *
  • Posts: 120
Re: wxWidgets-2.8.7 not linking
« Reply #7 on: April 21, 2008, 11:44:35 am »
Maybe error in gcc?
What version gcc you will recommend?
Or to download Code::Blocks together with MinGW - codeblocks-8.02mingw-setup.exe?

It seems to me like a wrong config in your project, so the linker hasn't been able to find the wxWidgets shared libraries. If you have built and are using different versions (different combinations with shared/static, debug/release, unicode/non-unicode, etc), try to specify the path to the appropiate build in your 'Linker search path' project' options for each case. And remember to update the libraries names used in your project if you want to recompile the same project against different versions (for instance: debug libraries have a "d" added to their name, unicode ones have an "u", and so)... or add a new target build.

And also, bear in mind that using shared libraries you'll need to have a copy of your wxMSW dll's somewhere inside your system path, so the app can use them when running.

In regards to the gcc version, I'm using also 3.4.5 in Windows and all is running fine (I'm using C::B svn version -i.e. built from the svn sources-)

Regards.
« Last Edit: April 21, 2008, 11:46:08 am by Deschamps »
Misquotations are the only quotations that are never misquoted

Offline Zoom

  • Single posting newcomer
  • *
  • Posts: 6
Re: wxWidgets-2.8.7 not linking
« Reply #8 on: April 21, 2008, 03:34:46 pm »
I even specified a full path and name "C:\wxWidgets-2.8.7\lib\gcc_dll\libwxmsw28u.a" to library in 'Linker search directories' аnd also has created the new project which supports unicode...
аnd certainly I have copy 'dll' in a system path...
I will try now gcc 3.4.5
if it will be interesting to you I soon write here about results...

Offline Seronis

  • Almost regular
  • **
  • Posts: 197
Re: wxWidgets-2.8.7 not linking
« Reply #9 on: April 21, 2008, 07:44:56 pm »
I even specified a full path and name "C:\wxWidgets-2.8.7\lib\gcc_dll\libwxmsw28u.a" to library in 'Linker search directories' аnd also has created the new

well you put a file where it is asking for a directory.

C:\wxWidgets-2.8.7\lib\gcc_dll

needs to be in the linker search directory and

wxmsw28u

needs to be in the included libs

Offline Zoom

  • Single posting newcomer
  • *
  • Posts: 6
Re: wxWidgets-2.8.7 not linking
« Reply #10 on: April 21, 2008, 08:13:00 pm »
Thanks all for the help, error was all the same in gcc!
I have now installed gcc 3.4.5(codeblocks-8.02mingw-setup.exe) and have compiled anew wxWidgets
All works, only two small errors - gcc was independent has not found сс1.exe and an error with a resource...
C:\wxWidgets-2.8.7\include\wx\msw\wx.rc:16: windows.h: No such file or directory

Offline marco_silva85

  • Single posting newcomer
  • *
  • Posts: 7
Re: wxWidgets-2.8.7 not linking
« Reply #11 on: May 10, 2008, 01:33:48 pm »
I have also the same problem:
wx\msw\wx.rc:9: No such file or directory

workaround?