← Back to team overview

kicad-developers team mailing list archive

Re: Merging branch with lp:kicad, call for help


Le 23/06/2012 16:34, Miguel Angel Ajo Pelayo a écrit :
I'm restarting my activity on KiCad (after a stressful month of work, were I had the chance to make
my first serious PCB on KiCad -with great success-), and after trying to merge with tip I get an error
of this kind:

[ 82%] Building CXX object pcbnew/CMakeFiles/pcbnew.dir/pcbnew_wrap.cxx.o
Linking CXX executable pcbnew
CMakeFiles/pcbnew.dir/tool_pcb.cpp.o: In function `PCB_LAYER_BOX_SELECTOR':
/home/ajo/work/kicad.scripting/pcbnew/./class_pcb_layer_box_selector.h:26: undefined reference to `vtable for PCB_LAYER_BOX_SELECTOR'
/home/ajo/work/kicad.scripting/pcbnew/./class_pcb_layer_box_selector.h:26: undefined reference to `vtable for PCB_LAYER_BOX_SELECTOR'
/home/ajo/work/kicad.scripting/pcbnew/./class_pcb_layer_box_selector.h:26: undefined reference to `vtable for PCB_LAYER_BOX_SELECTOR'
collect2: ld returned 1 exit status
make[2]: *** [pcbnew/pcbnew] Error 1
make[1]: *** [pcbnew/CMakeFiles/pcbnew.dir/all] Error 2
make: *** [all] Error 2

I know it's inheritance related, vtables are for virtual methods, right?, .... but I find myself a little lost. :-)

Line 26 of that .h is

     // Hotkey Info
     struct EDA_HOTKEY_CONFIG* m_hotkeys;

     PCB_LAYER_BOX_SELECTOR( wxAuiToolBar* parent, wxWindowID id,
                         const wxPoint& pos = wxDefaultPosition,
                         const wxSize& size = wxDefaultSize,
                         int n = 0, const wxString choices[] = NULL )
*  :LAYER_BOX_SELECTOR( parent, id, pos, size, n, choices )         <<<<<<<<<<*

I keep trying to discover what's the problem, but any hint/help is very welcome!!


Miguel Angel Ajo Pelayo

Obviously, this kind of issue happens when the constructor of LAYER_BOX_SELECTOR is not found.
It is in class_layer_box_selector.cpp, compiled in libcommon.a
But it is used also by Gerbview. Is Gerbview compile OK ?

Sometimes this kind of issue happens when object files are not correctly updated,
for instance after modifying compil options or some update in the devel tools.

Usually in this case, a full rebuild of KiCad fixes this issue.

Jean-Pierre CHARRAS