Compiling and Linking with MinGW Topic is solved

Do you have a question about makefiles, a compiler or IDE you are using and need to know how to set it up for wxWidgets or why it doesn't compile but other IDE's do ? Post your questions here.
Post Reply
paultjuh
In need of some credit
In need of some credit
Posts: 8
Joined: Tue Jun 05, 2007 3:39 pm

Compiling and Linking with MinGW

Post by paultjuh »

Hi! I have created a Windows application with gtkmm as widget toolkit. People have to install the gtkmm runtime environment before they can start my application. That's why I'm considering to move to wxWidgets. My compiler is MinGW.

First I'm tried to compile the hello world program. This should be a piece of cake, but it is unnecessary hard. First of all there are no precompiled binaries which I can use. Every user has to go through the whole compile hell before he can actually start programming. It would be easier if one person compiles the whole library for every OS and compiler, both statically and dynamically. That's a lot of compiling, but I'm sure it will cost less time than letting every programmer compile.

But, I tried to compile the library. Statically and with unicode. This page explains how to do this. MSYS doesn't work on my computer. A white console window flashes on my monitor, and that was it. I don't know why I have to install MSYS and run the whole configure circus anyway. Can't we just use a different setup.h file that defines the different settings for every platform and compiler? Or different makefiles? And then I don't mean a linux tool ported to Windows that generates different makefiles dependent on the OS, the environment settings and the frequency of my heartbeat. No, just different files.

I also found a tutorial of how to install wxWidgets on Code::Blocks. I'm not using Code::Blocks, but it uses MinGW so it might help me. The compilation did work. But now I got a whole bunch of linking errors when I try to compile the hello world example, which I don't know how to solve. I desperately searched on Google and I ended up in some French site (this one). Believe me, the last place where I want to be is a French internet site. However, on that site were some DevPacks of wxWidgets, in which were some .a and .h files. I almost thought I was finally there, but then I got an other list of linking errors.

Despite my complaining, I still want to try wxWidgets. Now my question is: Can you make it easier for programmers to install wxWidgets? If so, please do it. And my second question: What should I do? Should I use the seven .a files that the compilation ment for Code::Blocks gave me, or the 29 .a files from the French site? And: What linking options should I use? What compiling options? I'm obviously not the first who asks these questions, the people behind the project might make some good, structured documentation to prevent a waste of time for everyone.
biplab
I live to help wx-kind
I live to help wx-kind
Posts: 194
Joined: Fri Feb 17, 2006 4:16 am
Location: Singapore
Contact:

Post by biplab »

From my personal experience, beginning wxWidgets programming often makes our life measurable.

1. Download a compiled binary of wxWidgets from http://wxpack.sourceforge.net/ It has a older version, though. But it would help you. It's a collection of different build of wx with MinGW and MSVC compiler. It's a huge download (200MB+).

2. Download a latest Nightly of Code::Blocks from http://forums.codeblocks.org/index.php/board,20.0.html

Now run wxWidgets Project Wizard of Code::Blocks and follow the steps. You'll be able to begin coding with wxWidgets.

If you face any problem with the wizard, please post it in C::B forum.

Regards,

Biplab
Blog: http://biplab.in

IDE: Code::Blocks
Compilers: GCC, MSVC, etc. ;)
OS: WinXP-SP2 & Linux.
dsilvia
Earned some good credits
Earned some good credits
Posts: 145
Joined: Sun May 29, 2005 3:42 pm
Location: Bettendorf, Iowa, USA (aka, BFE)

Post by dsilvia »

Hi!

http://www.anthemion.co.uk/dialogblocks/

There is a bundled package of the latest DialogBlocks, MinGW, and wxWidgets for Windows platforms.

Install all of these (one installation) and open DialogBlocks and answer the questions in the Setup Wizard. To build wxWidgets:

1) Open the Acme example project, in the DialogBlocks installation directory go to \Samples\Acme and open the Acme.pjd file in DialogBlocks.

2) Select MinGW Debug or Release (or both in turn)

3) Select Build>Build wxWidgets

If you want Unicode builds also:

1) Select Build>Configurations

2) Click the Standard button for Compiler Configurations

3) Add MinGW Unicode Debug and/or Release.

Repeat the steps for building wxWidgets for these two added configurations.

Build the Acme sample (also the Elements sample if you like).

Now you're all set!;) You don't have to buy DialogBlocks to do this and you may keep it forever and only do your wxWidgets builds. You can also do applications of up to 30 elements for free. It's only if you decide it's worth the price to have for larger applications that you have to pay the registration fee. It's not a yearly fee. I've had it since 2.x version days and it's now up to 4.x and I've only paid for it twice. Once for the original purchase, and once on a major version upgrade (reduced price). That's in nearly 4 years so I think that's quite reasonable. And, you don't have to mess with nightly builds and the like. Julian Smart notifies you when a new release is available. Those come on the average about every other month.

Well worth it (the effort, I mean. For what you're wanting to do it's free excepting your effort!;) ). One download. One install. Automated build of wxWidgets for whatever compiler you like.

HTH:

thx,
Dave S.

wxMS_developers
paultjuh
In need of some credit
In need of some credit
Posts: 8
Joined: Tue Jun 05, 2007 3:39 pm

Post by paultjuh »

I'm trying the wxPack approach, but not with Code::Blocks, only MinGW. I copied the directory with the .h files to the include directory in MinGW and I copied the .a files I will use to the lib directory of MinGW. Compiling went good, but the linking not.

I executed:
g++ main.o -o test.exe -mwindows -lwxbase28u -lwxmsw28u_core
These are the errors:
main.o(.text$_ZN12wxStringBaseC2EPKc[wxStringBase::wxStringBase(char const*)]+0x25):main.cpp: undefined reference to `wxStringBase::InitWith(char const*, unsigned int, unsigned int)'
main.o(.rdata$_ZTV5MyApp[vtable for MyApp]+0x44):main.cpp: undefined reference to `wxApp::Initialize(int&, char**)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxbase28u.a(baselib_filename.o)(.text+0x1d8e):filename.cpp: undefined reference to `CoCreateInstance@20'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxbase28u.a(baselib_filename.o)(.text+0x1db0):filename.cpp: undefined reference to `IID_IPersistFile'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_window.o)(.text+0x199b):window.cpp: undefined reference to `wxSystemOptions::GetOptionInt(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_window.o)(.text+0x56d1):window.cpp: undefined reference to `wxEVT_POWER_RESUME'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_window.o)(.text+0x56e1):window.cpp: undefined reference to `wxEVT_POWER_SUSPENDING'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_window.o)(.text+0x56f1):window.cpp: undefined reference to `wxEVT_POWER_SUSPEND_CANCEL'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_window.o)(.text+0x5701):window.cpp: undefined reference to `wxEVT_POWER_SUSPENDED'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_wincmn.o)(.text+0x635):wincmn.cpp: undefined reference to `wxSystemOptions::HasOption(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_wincmn.o)(.text+0x69a):wincmn.cpp: undefined reference to `wxSystemOptions::GetOptionInt(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_wincmn.o)(.text+0xc15):wincmn.cpp: undefined reference to `wxSystemOptions::HasOption(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_wincmn.o)(.text+0xc7a):wincmn.cpp: undefined reference to `wxSystemOptions::GetOptionInt(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_app.o)(.text+0x665):app.cpp: undefined reference to `InitCommonControls@0'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_app.o)(.text+0x680):app.cpp: undefined reference to `OleInitialize@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_app.o)(.text+0x8be):app.cpp: undefined reference to `OleUninitialize@0'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_statbr95.o)(.text+0x16f):statbr95.cpp: undefined reference to `CreateStatusWindowW@16'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_textctrl.o)(.text+0x752e):textctrl.cpp: undefined reference to `wxSystemOptions::GetOptionInt(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_textctrl.o)(.text+0x7577):textctrl.cpp: undefined reference to `wxSystemOptions::HasOption(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_textctrl.o)(.text+0x7ade):textctrl.cpp: undefined reference to `wxSystemOptions::GetOptionInt(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dc.o)(.text+0x6b4a):dc.cpp: undefined reference to `wxSystemOptions::GetOptionInt(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dc.o)(.text+0x79d3):dc.cpp: undefined reference to `wxSystemOptions::GetOptionInt(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_tbar95.o)(.text+0x2cb4):tbar95.cpp: undefined reference to `wxSystemOptions::HasOption(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_tbar95.o)(.text+0x2d06):tbar95.cpp: undefined reference to `wxSystemOptions::GetOptionInt(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_statbox.o)(.text+0x2b7):statbox.cpp: undefined reference to `wxSystemOptions::HasOption(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_statbox.o)(.text+0x337):statbox.cpp: undefined reference to `wxSystemOptions::GetOptionInt(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_statbox.o)(.text+0x464):statbox.cpp: undefined reference to `wxSystemOptions::HasOption(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_statbox.o)(.text+0x549):statbox.cpp: undefined reference to `wxSystemOptions::GetOptionInt(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_statbox.o)(.text+0xc33):statbox.cpp: undefined reference to `wxSystemOptions::GetOptionInt(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_droptgt.o)(.text+0x924):droptgt.cpp: undefined reference to `CoLockObjectExternal@12'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_droptgt.o)(.text+0x93c):droptgt.cpp: undefined reference to `RegisterDragDrop@8'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_droptgt.o)(.text+0x96e):droptgt.cpp: undefined reference to `CoLockObjectExternal@12'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_droptgt.o)(.text+0x991):droptgt.cpp: undefined reference to `RevokeDragDrop@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_droptgt.o)(.text+0x9ae):droptgt.cpp: undefined reference to `CoLockObjectExternal@12'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_droptgt.o)(.data+0x0):droptgt.cpp: undefined reference to `IID_IUnknown'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_droptgt.o)(.data+0x4):droptgt.cpp: undefined reference to `IID_IDropTarget'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_spinbutt.o)(.text+0x36f):spinbutt.cpp: undefined reference to `CreateUpDownControl@48'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.text+0x14ac):sizer.cpp: undefined reference to `wxClientDataContainer::~wxClientDataContainer()'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.text+0x1550):sizer.cpp: undefined reference to `wxClientDataContainer::~wxClientDataContainer()'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.text+0x164c):sizer.cpp: undefined reference to `wxClientDataContainer::~wxClientDataContainer()'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.text+0x16f0):sizer.cpp: undefined reference to `wxClientDataContainer::~wxClientDataContainer()'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.text+0x17ec):sizer.cpp: undefined reference to `wxClientDataContainer::~wxClientDataContainer()'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.text+0x1896):sizer.cpp: more undefined references to `wxClientDataContainer::~wxClientDataContainer()' follow
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.text+0x2b69):sizer.cpp: undefined reference to `wxClientDataContainer::wxClientDataContainer()'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.text+0x2c6b):sizer.cpp: undefined reference to `wxClientDataContainer::~wxClientDataContainer()'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.text+0x2cf9):sizer.cpp: undefined reference to `wxClientDataContainer::wxClientDataContainer()'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.text+0x2dfb):sizer.cpp: undefined reference to `wxClientDataContainer::~wxClientDataContainer()'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.text+0x2e89):sizer.cpp: undefined reference to `wxClientDataContainer::wxClientDataContainer()'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.text+0x2f88):sizer.cpp: undefined reference to `wxClientDataContainer::~wxClientDataContainer()'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.text+0x3019):sizer.cpp: undefined reference to `wxClientDataContainer::wxClientDataContainer()'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.text+0x3118):sizer.cpp: undefined reference to `wxClientDataContainer::~wxClientDataContainer()'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.text+0x4d1f):sizer.cpp: undefined reference to `wxClientDataContainer::wxClientDataContainer()'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.text+0x4e08):sizer.cpp: undefined reference to `wxClientDataContainer::~wxClientDataContainer()'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.text+0x4e9f):sizer.cpp: undefined reference to `wxClientDataContainer::wxClientDataContainer()'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.text+0x4f88):sizer.cpp: undefined reference to `wxClientDataContainer::~wxClientDataContainer()'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV22wxStdDialogButtonSizer[vtable for wxStdDialogButtonSizer]+0x7c):sizer.cpp: undefined reference to `wxClientDataContainer::DoSetClientObject(wxClientData*)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV22wxStdDialogButtonSizer[vtable for wxStdDialogButtonSizer]+0x80):sizer.cpp: undefined reference to `wxClientDataContainer::DoGetClientObject() const'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV22wxStdDialogButtonSizer[vtable for wxStdDialogButtonSizer]+0x84):sizer.cpp: undefined reference to `wxClientDataContainer::DoSetClientData(void*)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV22wxStdDialogButtonSizer[vtable for wxStdDialogButtonSizer]+0x88):sizer.cpp: undefined reference to `wxClientDataContainer::DoGetClientData() const'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV7wxSizer[vtable for wxSizer]+0x7c):sizer.cpp: undefined reference to `wxClientDataContainer::DoSetClientObject(wxClientData*)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV7wxSizer[vtable for wxSizer]+0x80):sizer.cpp: undefined reference to `wxClientDataContainer::DoGetClientObject() const'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV7wxSizer[vtable for wxSizer]+0x84):sizer.cpp: undefined reference to `wxClientDataContainer::DoSetClientData(void*)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV7wxSizer[vtable for wxSizer]+0x88):sizer.cpp: undefined reference to `wxClientDataContainer::DoGetClientData() const'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV11wxGridSizer[vtable for wxGridSizer]+0x7c):sizer.cpp: undefined reference to `wxClientDataContainer::DoSetClientObject(wxClientData*)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV11wxGridSizer[vtable for wxGridSizer]+0x80):sizer.cpp: undefined reference to `wxClientDataContainer::DoGetClientObject() const'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV11wxGridSizer[vtable for wxGridSizer]+0x84):sizer.cpp: undefined reference to `wxClientDataContainer::DoSetClientData(void*)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV11wxGridSizer[vtable for wxGridSizer]+0x88):sizer.cpp: undefined reference to `wxClientDataContainer::DoGetClientData() const'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV15wxFlexGridSizer[vtable for wxFlexGridSizer]+0x7c):sizer.cpp: undefined reference to `wxClientDataContainer::DoSetClientObject(wxClientData*)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV15wxFlexGridSizer[vtable for wxFlexGridSizer]+0x80):sizer.cpp: undefined reference to `wxClientDataContainer::DoGetClientObject() const'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV15wxFlexGridSizer[vtable for wxFlexGridSizer]+0x84):sizer.cpp: undefined reference to `wxClientDataContainer::DoSetClientData(void*)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV15wxFlexGridSizer[vtable for wxFlexGridSizer]+0x88):sizer.cpp: undefined reference to `wxClientDataContainer::DoGetClientData() const'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV10wxBoxSizer[vtable for wxBoxSizer]+0x7c):sizer.cpp: undefined reference to `wxClientDataContainer::DoSetClientObject(wxClientData*)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV10wxBoxSizer[vtable for wxBoxSizer]+0x80):sizer.cpp: undefined reference to `wxClientDataContainer::DoGetClientObject() const'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV10wxBoxSizer[vtable for wxBoxSizer]+0x84):sizer.cpp: undefined reference to `wxClientDataContainer::DoSetClientData(void*)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV10wxBoxSizer[vtable for wxBoxSizer]+0x88):sizer.cpp: undefined reference to `wxClientDataContainer::DoGetClientData() const'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV16wxStaticBoxSizer[vtable for wxStaticBoxSizer]+0x7c):sizer.cpp: undefined reference to `wxClientDataContainer::DoSetClientObject(wxClientData*)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV16wxStaticBoxSizer[vtable for wxStaticBoxSizer]+0x80):sizer.cpp: undefined reference to `wxClientDataContainer::DoGetClientObject() const'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV16wxStaticBoxSizer[vtable for wxStaticBoxSizer]+0x84):sizer.cpp: undefined reference to `wxClientDataContainer::DoSetClientData(void*)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_sizer.o)(.rdata$_ZTV16wxStaticBoxSizer[vtable for wxStaticBoxSizer]+0x88):sizer.cpp: undefined reference to `wxClientDataContainer::DoGetClientData() const'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_notebook.o)(.text+0x30eb):notebook.cpp: undefined reference to `wxSystemOptions::HasOption(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_notebook.o)(.text+0x33b2):notebook.cpp: undefined reference to `wxSystemOptions::GetOptionInt(wxString const&)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_image.o)(.text+0x284):image.cpp: undefined reference to `wxVariant::SetData(wxVariantData*)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_image.o)(.text+0xb1c2):image.cpp: undefined reference to `wxVariantData::ms_classInfo'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_colourcmn.o)(.text+0x205):colourcmn.cpp: undefined reference to `wxVariant::SetData(wxVariantData*)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_colourcmn.o)(.text+0xa50):colourcmn.cpp: undefined reference to `wxVariantData::ms_classInfo'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_imaglist.o)(.text+0xdb):imaglist.cpp: undefined reference to `ImageList_Create@20'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_imaglist.o)(.text+0x179):imaglist.cpp: undefined reference to `ImageList_Destroy@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_imaglist.o)(.text+0x259):imaglist.cpp: undefined reference to `ImageList_Destroy@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_imaglist.o)(.text+0x339):imaglist.cpp: undefined reference to `ImageList_Destroy@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_imaglist.o)(.text+0x3d0):imaglist.cpp: undefined reference to `ImageList_GetImageCount@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_imaglist.o)(.text+0x3fe):imaglist.cpp: undefined reference to `ImageList_GetIconSize@12'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_imaglist.o)(.text+0x467):imaglist.cpp: undefined reference to `ImageList_AddMasked@12'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_imaglist.o)(.text+0x4ed):imaglist.cpp: undefined reference to `ImageList_ReplaceIcon@12'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_imaglist.o)(.text+0x56a):imaglist.cpp: undefined reference to `ImageList_ReplaceIcon@12'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_imaglist.o)(.text+0x597):imaglist.cpp: undefined reference to `ImageList_Remove@8'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_imaglist.o)(.text+0x663):imaglist.cpp: undefined reference to `ImageList_SetBkColor@8'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_imaglist.o)(.text+0x6ba):imaglist.cpp: undefined reference to `ImageList_Draw@24'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_imaglist.o)(.text+0xf36):imaglist.cpp: undefined reference to `ImageList_GetIcon@12'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_imaglist.o)(.text+0x14cc):imaglist.cpp: undefined reference to `ImageList_Replace@16'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_imaglist.o)(.text+0x1525):imaglist.cpp: undefined reference to `ImageList_Add@12'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_bmpbase.o)(.text+0x174):bmpbase.cpp: undefined reference to `wxVariant::SetData(wxVariantData*)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_bmpbase.o)(.text+0x384):bmpbase.cpp: undefined reference to `wxVariant::SetData(wxVariantData*)'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_bmpbase.o)(.text+0xa5e):bmpbase.cpp: undefined reference to `wxVariantData::ms_classInfo'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_bmpbase.o)(.text+0xaab):bmpbase.cpp: undefined reference to `wxVariantData::ms_classInfo'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_listctrl.o)(.text+0x89e4):listctrl.cpp: undefined reference to `ImageList_GetImageCount@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_listctrl.o)(.text+0x8a53):listctrl.cpp: undefined reference to `ImageList_Draw@24'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_listctrl.o)(.text+0x8a96):listctrl.cpp: undefined reference to `ImageList_GetIconSize@12'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_oleutils.o)(.text+0x2d2):oleutils.cpp: undefined reference to `SysAllocString@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_clipbrd.o)(.text+0xd4d):clipbrd.cpp: undefined reference to `OleInitialize@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_clipbrd.o)(.text+0xeed):clipbrd.cpp: undefined reference to `OleInitialize@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_clipbrd.o)(.text+0xfaa):clipbrd.cpp: undefined reference to `OleIsCurrentClipboard@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_clipbrd.o)(.text+0xfc9):clipbrd.cpp: undefined reference to `OleSetClipboard@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_clipbrd.o)(.text+0x1045):clipbrd.cpp: undefined reference to `OleUninitialize@0'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_clipbrd.o)(.text+0x1125):clipbrd.cpp: undefined reference to `OleUninitialize@0'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_clipbrd.o)(.text+0x1205):clipbrd.cpp: undefined reference to `OleUninitialize@0'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_clipbrd.o)(.text+0x129c):clipbrd.cpp: undefined reference to `OleIsCurrentClipboard@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_clipbrd.o)(.text+0x12af):clipbrd.cpp: undefined reference to `OleFlushClipboard@0'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_clipbrd.o)(.text+0x133c):clipbrd.cpp: undefined reference to `OleSetClipboard@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_clipbrd.o)(.text+0x13fd):clipbrd.cpp: undefined reference to `OleGetClipboard@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_clipbrd.o)(.text+0x160b):clipbrd.cpp: undefined reference to `ReleaseStgMedium@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x31b):dragimag.cpp: undefined reference to `ImageList_Destroy@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x384):dragimag.cpp: undefined reference to `ImageList_Destroy@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x3f3):dragimag.cpp: undefined reference to `ImageList_Destroy@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x44b):dragimag.cpp: undefined reference to `ImageList_Destroy@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x513):dragimag.cpp: undefined reference to `ImageList_Destroy@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x56b):dragimag.cpp: more undefined references to `ImageList_Destroy@4' follow
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x783):dragimag.cpp: undefined reference to `ImageList_Create@20'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x7b0):dragimag.cpp: undefined reference to `ImageList_Add@12'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x834):dragimag.cpp: undefined reference to `ImageList_Add@12'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x8b4):dragimag.cpp: undefined reference to `ImageList_Destroy@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x932):dragimag.cpp: undefined reference to `ImageList_Create@20'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x95c):dragimag.cpp: undefined reference to `ImageList_ReplaceIcon@12'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x9c5):dragimag.cpp: undefined reference to `ImageList_Destroy@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x16ad):dragimag.cpp: undefined reference to `ImageList_BeginDrag@16'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x1703):dragimag.cpp: undefined reference to `ImageList_ReplaceIcon@12'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x172a):dragimag.cpp: undefined reference to `ImageList_SetDragCursorImage@16'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x17cf):dragimag.cpp: undefined reference to `ImageList_Create@20'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x1947):dragimag.cpp: undefined reference to `ImageList_EndDrag@0'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x19f1):dragimag.cpp: undefined reference to `ImageList_DragMove@8'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x1ae2):dragimag.cpp: undefined reference to `ImageList_DragEnter@12'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dragimag.o)(.text+0x1b24):dragimag.cpp: undefined reference to `ImageList_DragLeave@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dataobj.o)(.text+0xc4a):dataobj.cpp: undefined reference to `ReleaseStgMedium@4'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dataobj.o)(.data+0x0):dataobj.cpp: undefined reference to `IID_IUnknown'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dataobj.o)(.data+0x4):dataobj.cpp: undefined reference to `IID_IDataObject'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dataobj.o)(.data+0x8):dataobj.cpp: undefined reference to `IID_IUnknown'
C:/compiler/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libwxmsw28u_core.a(corelib_dataobj.o)(.data+0xc):dataobj.cpp: undefined reference to `IID_IEnumFORMATETC'
I get linking errors too when I compile to the big .a file instead of the seperate files. It looks like I have to link against more files. I tried some wxWidgets files and some files that are already in my MinGW installation. But it didn't help.

Could you please give me the command line I should run for linking?
paultjuh
In need of some credit
In need of some credit
Posts: 8
Joined: Tue Jun 05, 2007 3:39 pm

Solved! :D

Post by paultjuh »

I finally found it!
I could get the compile and link options with Wx-Config.

On my PC the compile options are:
-mthreads -DHAVE_W32API_H -D__WXMSW__ -D_UNICODE -Wno-ctor-dtor-privacy -pipe -fmessage-length=0
And the linking options:
-mwindows -mthreads -lwxmsw28u -lwxtiff -lwxjpeg -lwxpng -lwxzlib -lwxregexu -lwxexpat -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwxregexu -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lodbc32
One important thing I learned: If a library depends on an other library, then the other library should be placed after the library!
Post Reply