On Tuesday 25 October 2005 06:50 am, Dan Andersson wrote: > Trying to compile gSpiceUI Version 0.7.56 on my SuSE 10.0 box. > > I cannot fins any fault in the code so I'll drop the question here and hope > someone ran into it it before. > > GCC = gcc version 4.0.2 (SUSE Linux) > > The compile output is: > > > > **************************************************************************************** > `/home/dan/geda-sources/gspiceui/gspiceui-v0.7.56/src' > g++ -c -O -Wall -pipe -I/usr/lib/wx/include/gtk2-unicode-release-2.6 > -I/usr/include/wx-2.6 -DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 > -D_LARGE_FILES -D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -I/usr/include > -I/usr/X11R6/include -I. -Ibase -Imain -Inetlist -Ignucap -Ingspice -Iprocess > -Iutility AppGSpiceUI.cpp -o obj/AppGSpiceUI.o > CmdLinePcr.hpp:49: error: ISO C++ forbids declaration of ‘AppGSpiceUI’ with > no > type > CmdLinePcr.hpp:49: error: expected ‘;’ before ‘*’ token
the rest is omitted. The problem is a recursive include. ‘AppGSpiceUI’ is not defined because ... CmdLinePcr.hpp includes AppGSpiceUI.hpp which tries to define it but AppGSpiceUI.hpp tries to include CmdLinePcr.hpp which is silently skipped because it thinks it is already included, but it didn't get to the definition of ‘AppGSpiceUI’ yet. Commenting out #include "CmdLinePcr.hpp" in AppGSpiceUI.hpp let it past this problem, but causes problems later, because the needed file isn't included. I stopped here, figuring this will get you past the block so you can finish the job. The program seems to use the include strategy that the .cpp file only includes its own .hpp file. The .hpp file tries to include all that is needed. #define and #ifdef prevent consequences of multiple inclusion. I got around this one by adding: class AppGSpiceUI; just after the #includes but the include strategy needs to be worked on. Then I got another problem... g++ -c -O -Wall -pipe -I/usr/lib/wx/include/gtk-2.4 -DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -I/usr/include -I/usr/X11R6/include -I. -Ibase -Imain -Inetlist -Ignucap -Ingspice -Iprocess -Iutility gnucap/DlgGenCfg.cpp -o obj/DlgGenCfg.o gnucap/DlgGenCfg.cpp: In member function 'void DlgGenCfg::Init()': gnucap/DlgGenCfg.cpp:57: error: 'wxSizerFlags' was not declared in this scope I couldn't find a definition of 'wxSizerFlags' anywhere. I think this problem is a library mismatch. The program expects a different version of wx than I have. I stopped here.
