A couple of weeks ago I downloaded the Celestia source code (not from the CVS repository) and, after some initial difficulties, got it to compile and run. Oh by the way, I'm using the Visual C++ 2005 Express compiler.
Tonight I finally got a CVS client installed and running and downloaded the Celestia sources from CVS. Apparently (and not surprisingly I guess), the version I got from CVS has some changes compared to the one I got from the Celestia main page a few weeks ago. Sadly some of these changes mean that my compiler is spitting out error messages and fails to compile Celestia in its current form. There are 3 seperate issues:
- In some places (for instance: celestia/src/celestiacelestiacore.cpp, line 1354), there are strings with just a leading underscore before them, like so:
Code: Select all
flash(_("Markers enabled"));
The compiler complains: 3>c:\development\tortoisecvs\celestia\src\celestia\celestiacore.cpp(1354) : error C3861: 'gettext': identifier not found
I compared the Celestia that I successfully compiled a few weeks back to the one I got now and it turns out that the file celestia/src/celutil/util.h has changed.
Old version:Code: Select all
#ifdef _WIN32
#define _(s) s
#else
#define _(s) gettext(s)
#endif
New version:Code: Select all
#ifdef _WIN32
#include "libintl.h"
#define _(string) gettext (string)
#else
#define _(string) gettext (string)
#endif
So previously the _ macro left the expression unchanged, whereas now it turns it into a call to gettext(), wnich apparently isn't defined anywhere. - In celestia/src/celtutil/util.h, line 33, the file "libintl.h" is #included. This file is, however, nowhere to be found.
- Where ever the bind_textdomain_codeset() function (or macro?) is used, the compiler says 'identifier not found'.
Can anyone shed some light on this please? What do I need to do to sort this out?