SOLVED: Need assistance compiling package

Andrew Robinson awrobinson-ml at nc.rr.com
Tue Jan 30 00:12:28 UTC 2007


Andrew Robinson wrote:
> I'm trying to build palm-db-tools. The build used to work on FC4, but 
> fails as you see on FC6. Is there a flag or something that would get me 
> around this particular problem?
> 
> Thanks!
> 
> Andrew Robinson
> 
> [root at proteus palm-db-tools]# make
> 
> make -C libsupport;  make -C libpalm;  make -C libflatfile;  make -C 
> flatfile;
> make[1]: Entering directory 
> `/data/Downloads/Pilot-DB/palm-db-tools/libsupport'
> g++ -ansi -pedantic -g -O2 -Wall -Werror -Wno-deprecated -I. -I.. 
> -DHAVE_CONFIG_H  -c csvfile.cpp
> cc1plus: warnings being treated as errors
> ../libsupport/infofile.h:33: warning: ‘class DataFile::InfoFile::Parser’ 
> has virtual functions but non-virtual destructor
> ../libsupport/infofile.h:38: warning: ‘class 
> DataFile::InfoFile::ConfigParser’ has virtual functions but non-virtual 
> destructor
> ../libsupport/infofile.h:48: warning: ‘class 
> DataFile::InfoFile::DatabaseParser’ has virtual functions but 
> non-virtual destructor
> ../libsupport/infofile.h:58: warning: ‘class 
> DataFile::InfoFile::TypeParser’ has virtual functions but non-virtual 
> destructor
> ../libsupport/infofile.h:68: warning: ‘class 
> DataFile::InfoFile::PDBPathParser’ has virtual functions but non-virtual 
> destructor
> make[1]: *** [csvfile.o] Error 1

Solution: I needed to add destructor's for the classes. I needed to 
convert this

class Parser
{
public:
     virtual void parse(int linenum, std::vector< std::string> array) = 0;
};

To this:

class Parser
{
public:
     virtual void parse(int linenum, std::vector< std::string> array) = 0;
     virtual ~Parser () {}
};

Now either the version of g++ was more forgiving in FC4 or there was a 
default setting that allowed this error to pass that has since changed. 
Anyway, adding destructors to all the complaining classes allowed the 
application to compile.

Andrew




More information about the fedora-list mailing list