pingus-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

POTFILES, snprintf and key_helper compilation errors


From: Gervase Lam
Subject: POTFILES, snprintf and key_helper compilation errors
Date: Mon, 9 Sep 2002 02:16:34 +0100

> From: David Philippi <address@hidden>
> Subject: Re: Major CVS changes completed?
> Date: Sat, 7 Sep 2002 11:42:46 +0200

> But CVS versions should change quite often (since this indicates a
> lively= =20
> project) so you may very well check out right now. The only thing I know
> = to=20
> be broken is the handling of former trap objects in the editor (ignoring
> = all=20
> bugs dating from before the removal of traps/ ).

Is this why I get the following error:

|| make[2]: Entering directory `/home/gervase/pingus/src/Games/Pingus/po'
|| make[2]: *** No rule to make target `../src/trap.cxx', needed by 
`pingus.pot'.  Stop.

I'm not too sure how to deal with this.  Is it OK just to remove 
"../src/trap.cxx" and "../src/trap.hxx" from "POTFILES.in"?  (It would've 
been nice if there was a comment at the top of "POTFILES" to say that it 
is generated from "POTFILES.in".)

Managed to get rid of a few other compilation errors due to snprintf being 
used but not being declared (i.e. #include <stdio.h> is required) and 
key_helper.cxx being moved up one directory.  The cvs diff file containing 
the changes are attached.

The key_helper.cxx got me a bit.  The make process mentioned that it could 
not make "key_helper.cxx" so I removed it from "Makefile.am".  I then 
recompiled and got:

|| input/libpingus_input.a(button_factory.o): In function 
`vector<Input::Button *, allocator<Input::Button *> 
>::_M_insert_aux(Input::Button **, Input::Button *const &)':
/usr/include/g++-3/stl_algobase.h|149| undefined reference to 
`Input::KeyHelper::string_to_key(basic_string<char, 
string_char_traits<char>, __default_alloc_template<true, 0> > const &)'

I thought I'd change the key_str in KeyHelper::string_to_key(key_str) to a 
std::string and then a literal in order to narrow down why the error 
message was being thrown up.  These changes threw up messages like:

|| input/libpingus_input.a(button_factory.o): In function 
`vector<Input::Button *, allocator<Input::Button *> 
>::_M_insert_aux(Input::Button **, Input::Button *const &)':
/usr/lib/gcc-lib/i586-mandrake-linux-gnu/2.96/include/new|64| undefined 
reference to `Input::KeyHelper::string_to_key(basic_string<char, 
string_char_traits<char>, __default_alloc_template<true, 0> > const &)'

After about one hour of struggling to find out why this was happening, 
which included finding out what KeyHelper::string_to_key() actually 
returned, I realised why there was a compilation error here.  I had 
removed "key_helper.cxx" from "src/input/buttons/Makefile.am" but not 
added to "src/input/Makefile.am"!

I must admit, I still don't know what the error messages EXACTLY mean.  I 
understand the bit about the fact that button_factory.o (i.e 
button_factory.cxx) was trying to use KeyHelper::string_to_key() but it 
couldn't because it was not compiled.  However, what does the "vector...", 
"include/new" and "g++-3/stl_algobase.h" bits mean?

Thanks,
Gervase.

Attachment: pingus_20020908.cvs.diff
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]