Undefined references with wx-devcpp beta 6.3

If you are using wxDev-C++ for your wxWidgets design, please ask your questions here instead of in IDE Related.
Post Reply
creator
In need of some credit
In need of some credit
Posts: 7
Joined: Fri Sep 17, 2004 6:51 am

Undefined references with wx-devcpp beta 6.3

Post by creator »

Hello,
I'm developing a project with wxWidgets.
I work mainly with Linux (wxWidgets 2.4.2, gcc 3.3).
But I had to recompile the project under windows.
So I installed the latest version of wx-devcpp, created the project file and
tried to compile but:

Code: Select all

#ifdef __GNUG__
	#pragma implementation "MHWizFrame.h"
#endif

#include <wx/wx.h>
//#include <wx/image.h>
#include "MHWizFrame.h"
#include "MHWizOrderPanel.h"
#include "MHWizMebelsPanel.h"
#include "MHWizMaterialsPanel.h"
/*
BEGIN_EVENT_TABLE( MHWizFrame, wxFrame )
	EVT_MENU( MHWizFrame::MENU_PROGRAM_SETTINGS , MHWizFrame::OnSettings)
	EVT_MENU( MHWizFrame::MENU_PROGRAM_ABOUT , MHWizFrame::OnAbout)
	EVT_MENU( MHWizFrame::MENU_PROGRAM_EXIT , MHWizFrame::OnExit)
	EVT_MENU( MHWizFrame::MENU_DATA_MAT , MHWizFrame::OnMaterialsPanel)
	EVT_MENU( MHWizFrame::MENU_DATA_WORK , MHWizFrame::OnWorkPanel)
	EVT_MENU( MHWizFrame::MENU_DATA_MEB , MHWizFrame::OnMebelsPanel)
	EVT_MENU( MHWizFrame::MENU_ORDER_MAKE , MHWizFrame::OnOrderPanel)
	EVT_MENU( MHWizFrame::MENU_ORDER_SAVE , MHWizFrame::OnSaveOrder)
	EVT_MENU( MHWizFrame::MENU_ORDER_LOAD , MHWizFrame::OnLoadOrder)
	EVT_TOOL( MHWizFrame::TOOL_ORDER , MHWizFrame::OnOrderPanel)
END_EVENT_TABLE()
*/
bool panel_loaded;
extern bool materials_loaded;
extern bool mebels_loaded;
wxString Buf;

MHWizFrame::MHWizFrame(wxWindow* parent, int id, const wxString& title, const wxPoint& pos, const wxSize& size, long style):
    wxFrame(parent, id, title, pos, size, wxDEFAULT_FRAME_STYLE)
{
some more code
when the event table is commented i get:

Code: Select all

g++.exe -c src/MHWizFrame.cpp -o obj/MHWizFrame.o -I"C:/dev-cpp/include/c++/3.3.1"  -I"C:/dev-cpp/include/c++/3.3.1/mingw32"  -I"C:/dev-cpp/include/c++/3.3.1/backward"  -I"C:/dev-cpp/lib/gcc-lib/mingw32/3.3.1/include"  -I"C:/dev-cpp/include" -DWINVER=0x0400 -D__WIN95__ -D__GNUWIN32__ -D__WIN32__ -DHAVE_W32API_H  -D__WXMSW__ -D__WINDOWS__ -Wall -fno-pcc-struct-return -O2 -Os -fno-rtti -fno-exceptions  

g++.exe obj/dlistbox.o obj/dsplitterwindow.o obj/dtextctrl.o obj/material.o obj/mebel.o obj/mhwiz.o obj/MHWizFrame.o obj/MHWizMaterialsPanel.o obj/MHWizMebelsPanel.o obj/MHWizOrderPanel.o MHWizPrj_private.res -o "bin\MHWiz.exe" -L"C:/dev-cpp/lib" -mwindows -Wl,--subsystem,windows -mwindows -lwxmsw -lstdc++ -lgcc -lodbc32 -lwsock32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lctl3d32 -ladvapi32 -lopengl32 -lglu32 -lole32 -loleaut32 -luuid -ljpeg -ltiff -lpng -lzlib  

obj/MHWizFrame.o(.ctors+0x0):MHWizFrame.cpp: undefined reference to `_GLOBAL__I_panel_loaded'
obj/MHWizFrame.o(.dtors+0x0):MHWizFrame.cpp: undefined reference to `_GLOBAL__D_panel_loaded'
and when it is not commented:

Code: Select all

g++.exe -c src/MHWizFrame.cpp -o obj/MHWizFrame.o -I"C:/dev-cpp/include/c++/3.3.1"  -I"C:/dev-cpp/include/c++/3.3.1/mingw32"  -I"C:/dev-cpp/include/c++/3.3.1/backward"  -I"C:/dev-cpp/lib/gcc-lib/mingw32/3.3.1/include"  -I"C:/dev-cpp/include" -DWINVER=0x0400 -D__WIN95__ -D__GNUWIN32__ -D__WIN32__ -DHAVE_W32API_H  -D__WXMSW__ -D__WINDOWS__ -Wall -fno-pcc-struct-return -O2 -Os -fno-rtti -fno-exceptions  

g++.exe obj/dlistbox.o obj/dsplitterwindow.o obj/dtextctrl.o obj/material.o obj/mebel.o obj/mhwiz.o obj/MHWizFrame.o obj/MHWizMaterialsPanel.o obj/MHWizMebelsPanel.o obj/MHWizOrderPanel.o MHWizPrj_private.res -o "bin\MHWiz.exe" -L"C:/dev-cpp/lib" -mwindows -Wl,--subsystem,windows -mwindows -lwxmsw -lstdc++ -lgcc -lodbc32 -lwsock32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lctl3d32 -ladvapi32 -lopengl32 -lglu32 -lole32 -loleaut32 -luuid -ljpeg -ltiff -lpng -lzlib  

obj/MHWizFrame.o(.ctors+0x0):MHWizFrame.cpp: undefined reference to `_GLOBAL__I__ZNK10MHWizFrame13GetEventTableEv'
obj/MHWizFrame.o(.dtors+0x0):MHWizFrame.cpp: undefined reference to `_GLOBAL__D__ZNK10MHWizFrame13GetEventTableEv'
Oh, and I removed wxWidgets 2.5.3 and then installed dev pak for 2.4.2
the same with both versions
upCASE
Moderator
Moderator
Posts: 3176
Joined: Mon Aug 30, 2004 6:55 am
Location: Germany, Cologne

Post by upCASE »

Hi!
Have you used DECLARE_EVENT_TABLE() in you classes header file?
OS: OpenSuSE, Ubuntu, Win XP Pro
wx: svn
Compiler: gcc 4.5.1, VC 2008, eVC 4

"If it was hard to write it should be hard to read..." - the unknown coder
"Try not! Do. Or do not. There is no try." - Yoda
creator
In need of some credit
In need of some credit
Posts: 7
Joined: Fri Sep 17, 2004 6:51 am

Post by creator »

yes:

Code: Select all

#ifndef MHWIZFRAME_H
#define MHWIZFRAME_H

#ifdef __GNUG__
 #pragma interface "MHWizFrame.h"
#endif

#include <wx/wx.h>
#include <wx/image.h>

// begin wxGlade: dependencies
// end wxGlade

class MHWizFrame: public wxFrame {
public:
    // begin wxGlade: MHWizFrame::ids
    enum {
        MENU_PROGRAM_SETTINGS = 1009,
        MENU_PROGRAM_ABOUT = 1010,
        MENU_PROGRAM_EXIT = 1011,
        MENU_DATA_MAT = 1012,
        MENU_DATA_WORK = 1013,
        MENU_DATA_MEB = 1014,
        MENU_ORDER_MAKE = 1015,
        MENU_ORDER_SAVE = 1016,
        MENU_ORDER_LOAD = 1017,
        TOOL_ORDER = 1019
    };
    // end wxGlade

    MHWizFrame(wxWindow* parent, int id, const wxString& title, const wxPoint& pos=wxDefaultPosition, const wxSize& size=wxDefaultSize, long style=wxDEFAULT_FRAME_STYLE);
		~MHWizFrame();
		
		void OnSettings(wxCommandEvent& WXUNUSED( event ));
		void OnAbout(wxCommandEvent& WXUNUSED( event ));
		void OnExit(wxCommandEvent& WXUNUSED( event ));
		void OnMaterialsPanel(wxCommandEvent& WXUNUSED( event ));
		void OnWorkPanel(wxCommandEvent& WXUNUSED( event ));
		void OnMebelsPanel(wxCommandEvent& WXUNUSED( event ));
		void OnOrderPanel(wxCommandEvent& WXUNUSED( event ));
		void OnSaveOrder(wxCommandEvent& WXUNUSED( event ));
		void OnLoadOrder(wxCommandEvent& WXUNUSED( event ));

private:
    // begin wxGlade: MHWizFrame::methods
    void set_properties();
    void do_layout();
    // end wxGlade
  
  wxPanel *panel;
  
  DECLARE_EVENT_TABLE()

protected:
    // begin wxGlade: MHWizFrame::attributes
    wxMenuBar* frame_menubar;
    wxStatusBar* frame_statusbar;
    wxToolBar* frame_toolbar;
    // end wxGlade
};


#endif // MHWIZFRAME_H

creator
In need of some credit
In need of some credit
Posts: 7
Joined: Fri Sep 17, 2004 6:51 am

solved

Post by creator »

hmm, starnge
updated gcc and binutils to latest available from devpacks.org and
voiala, it compiles and links without problems.
Seems a bit strange to me.
After that updated wx to 2.5.3, but didn't have time to test.
Will post the rasults later:)
Post Reply