A primer for new C++ developer volunteers on Win XP

The place to discuss creating, porting and modifying Celestia's source code.
Avatar
selden
Developer
Posts: 10053
Joined: 04.09.2002
With us: 16 years 10 months
Location: NY, USA

Post #61by selden » 21.10.2005, 12:02

I don't know what you mean by guidelines.
Guidelines for what?

For recompiling Celestia, you really need to read carefully the sticky messages that are at the top of the Development forum.

A primer for new C++ developer volunteers on Win XP at http://216.231.48.101/forum/viewtopic.php?t=3637
and
Free Windows-based compiling for Celestia at http://216.231.48.101/forum/viewtopic.php?t=6255

Anything more I can say would just be repeating them.
Selden

georgiouk
Posts: 47
Joined: 02.05.2005
With us: 14 years 2 months
Location: Greece

Post #62by georgiouk » 21.10.2005, 14:54

Hi!
My purpose of compiling Celestia is to modify its code so the user interface would be different so it could be used by Greek people.
I am going to describe to you what exactly I have done to correct me if I have done something wrong
1)I have downoloaded ths celestia cvs with TortoiseCvs then I copied the new created file named celestia and placed it to C:\celestia
2)I have put the two libraries folders inc and lib that I have downloaded from http://celestiaproject.net/celestia/files/winlibs-new.zip
3)Then I have placed in the C:\celestia the libpng1.dll and zlib.dll from my actual Celestia installation and finally
4)I have placed the cxx-setup.bat in the C:\celestia

When I tried to compile it I have succeed it and so the celestia.exe was created in C:\celestia but when I try to rebuild it through Microsoft Visual Studio C++.Net these mistakes appear:


LINK : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/INCREMENTAL:NO' specification
LINK : warning LNK4098: defaultlib 'LIBC' conflicts with use of other libs; use /NODEFAULTLIB:library
celestiacore.obj : error LNK2019: unresolved external symbol "class ColorTemperatureTable * __cdecl GetStarColorTable(enum ColorTableType)" (?GetStarColorTable@@YAPAVColorTemperatureTable@@W4ColorTableType@@@Z) referenced in function "public: void __thiscall CelestiaCore::charEntered(char const *,int)" (?charEntered@CelestiaCore@@QAEXPBDH@Z)
cel_engine.lib(render.obj) : error LNK2019: unresolved external symbol "class ColorTemperatureTable * __cdecl GetStarColorTable(enum ColorTableType)" (?GetStarColorTable@@YAPAVColorTemperatureTable@@W4ColorTableType@@@Z) referenced in function "public: virtual void __thiscall OrbitSampler::sample(double,class Point3<double> const &)" (?sample@OrbitSampler@@UAEXNABV?$Point3@N@@@Z)
winmain.obj : error LNK2001: unresolved external symbol _wglGetPixelFormatAttribivARB
winmain.obj : error LNK2001: unresolved external symbol _wglChoosePixelFormatARB
winmain.obj : error LNK2019: unresolved external symbol "bool __cdecl WGLExtensionSupported(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?WGLExtensionSupported@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function "bool __cdecl SetDCPixelFormat(struct HDC__ *)" (?SetDCPixelFormat@@YA_NPAUHDC__@@@Z)
winmain.obj : error LNK2019: unresolved external symbol "void __cdecl InitWGLExtensions(struct HINSTANCE__ *)" (?InitWGLExtensions@@YAXPAUHINSTANCE__@@@Z) referenced in function _WinMain@16
cel_engine.lib(render.obj) : error LNK2019: unresolved external symbol "public: class Vec3ShaderParameter & __thiscall Vec3ShaderParameter::operator=(class Vector3<float> const &)" (??4Vec3ShaderParameter@@QAEAAV0@ABV?$Vector3@M@@@Z) referenced in function "void __cdecl renderSphere_GLSL(struct RenderInfo const &,struct LightingState const &,class RingSystem *,float,class Matrix4<float> const &,class Frustum const &,class GLContext const &)" (?renderSphere_GLSL@@YAXABURenderInfo@@ABULightingState@@PAVRingSystem@@MABV?$Matrix4@M@@ABVFrustum@@ABVGLContext@@@Z)
cel_engine.lib(render.obj) : error LNK2019: unresolved external symbol "public: class FloatShaderParameter & __thiscall FloatShaderParameter::operator=(float)" (??4FloatShaderParameter@@QAEAAV0@M@Z) referenced in function "void __cdecl renderSphere_GLSL(struct RenderInfo const &,struct LightingState const &,class RingSystem *,float,class Matrix4<float> const &,class Frustum const &,class GLContext const &)" (?renderSphere_GLSL@@YAXABURenderInfo@@ABULightingState@@PAVRingSystem@@MABV?$Matrix4@M@@ABVFrustum@@ABVGLContext@@@Z)
cel_engine.lib(render.obj) : error LNK2019: unresolved external symbol "public: class CelestiaGLProgram * __thiscall ShaderManager::getShader(class ShaderProperties const &)" (?getShader@ShaderManager@@QAEPAVCelestiaGLProgram@@ABVShaderProperties@@@Z) referenced in function "void __cdecl renderSphere_GLSL(struct RenderInfo const &,struct LightingState const &,class RingSystem *,float,class Matrix4<float> const &,class Frustum const &,class GLContext const &)" (?renderSphere_GLSL@@YAXABURenderInfo@@ABULightingState@@PAVRingSystem@@MABV?$Matrix4@M@@ABVFrustum@@ABVGLContext@@@Z)
cel_engine.lib(render.obj) : error LNK2019: unresolved external symbol "class ShaderManager & __cdecl GetShaderManager(void)" (?GetShaderManager@@YAAAVShaderManager@@XZ) referenced in function "void __cdecl renderSphere_GLSL(struct RenderInfo const &,struct LightingState const &,class RingSystem *,float,class Matrix4<float> const &,class Frustum const &,class GLContext const &)" (?renderSphere_GLSL@@YAXABURenderInfo@@ABULightingState@@PAVRingSystem@@MABV?$Matrix4@M@@ABVFrustum@@ABVGLContext@@@Z)
cel_engine.lib(render.obj) : error LNK2019: unresolved external symbol "public: void __thiscall ShaderProperties::setShadowCountForLight(unsigned int,unsigned int)" (?setShadowCountForLight@ShaderProperties@@QAEXII@Z) referenced in function "void __cdecl renderSphere_GLSL(struct RenderInfo const &,struct LightingState const &,class RingSystem *,float,class Matrix4<float> const &,class Frustum const &,class GLContext const &)" (?renderSphere_GLSL@@YAXABURenderInfo@@ABULightingState@@PAVRingSystem@@MABV?$Matrix4@M@@ABVFrustum@@ABVGLContext@@@Z)
cel_engine.lib(render.obj) : error LNK2019: unresolved external symbol "public: __thiscall ShaderProperties::ShaderProperties(void)" (??0ShaderProperties@@QAE@XZ) referenced in function "void __cdecl renderSphere_GLSL(struct RenderInfo const &,struct LightingState const &,class RingSystem *,float,class Matrix4<float> const &,class Frustum const &,class GLContext const &)" (?renderSphere_GLSL@@YAXABURenderInfo@@ABULightingState@@PAVRingSystem@@MABV?$Matrix4@M@@ABVFrustum@@ABVGLContext@@@Z)
cel_engine.lib(render.obj) : error LNK2019: unresolved external symbol "public: void __thiscall GLProgram::use(void)const " (?use@GLProgram@@QBEXXZ) referenced in function "public: void __thiscall CelestiaGLProgram::use(void)const " (?use@CelestiaGLProgram@@QBEXXZ)
cel_engine.lib(render.obj) : error LNK2019: unresolved external symbol "public: class Vec4ShaderParameter & __thiscall Vec4ShaderParameter::operator=(class Vector4<float> const &)" (??4Vec4ShaderParameter@@QAEAAV0@ABV?$Vector4@M@@@Z) referenced in function "void __cdecl setEclipseShadowShaderConstants(struct LightingState const &,float,class Matrix4<float> const &,class CelestiaGLProgram &)" (?setEclipseShadowShaderConstants@@YAXABULightingState@@MABV?$Matrix4@M@@AAVCelestiaGLProgram@@@Z)
cel_engine.lib(render.obj) : error LNK2019: unresolved external symbol "public: bool __thiscall ShaderProperties::usesFragmentLighting(void)const " (?usesFragmentLighting@ShaderProperties@@QBE_NXZ) referenced in function "void __cdecl setLightParameters_GLSL(class CelestiaGLProgram &,class ShaderProperties const &,struct LightingState const &,class Color,class Color)" (?setLightParameters_GLSL@@YAXAAVCelestiaGLProgram@@ABVShaderProperties@@ABULightingState@@VColor@@3@Z)
cel_engine.lib(render.obj) : error LNK2019: unresolved external symbol "public: bool __thiscall ShaderProperties::usesShadows(void)const " (?usesShadows@ShaderProperties@@QBE_NXZ) referenced in function "void __cdecl setLightParameters_GLSL(class CelestiaGLProgram &,class ShaderProperties const &,struct LightingState const &,class Color,class Color)" (?setLightParameters_GLSL@@YAXAAVCelestiaGLProgram@@ABVShaderProperties@@ABULightingState@@VColor@@3@Z)
cel_engine.lib(render.obj) : error LNK2019: unresolved external symbol "public: class Vec3ShaderParameter & __thiscall Vec3ShaderParameter::operator=(class Point3<float> const &)" (??4Vec3ShaderParameter@@QAEAAV0@ABV?$Point3@M@@@Z) referenced in function "void __cdecl renderRings_GLSL(class RingSystem &,struct RenderInfo &,struct LightingState const &,float,float,unsigned int,bool,unsigned int)" (?renderRings_GLSL@@YAXAAVRingSystem@@AAURenderInfo@@ABULightingState@@MMI_NI@Z)
cel_engine.lib(stardb.obj) : error LNK2019: unresolved external symbol "class Orbit * __cdecl CreateOrbit(class PlanetarySystem *,class AssociativeArray *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,bool)" (?CreateOrbit@@YAPAVOrbit@@PAVPlanetarySystem@@PAVAssociativeArray@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z) referenced in function "public: class Star * __thiscall StarDatabase::createStar(unsigned int,class AssociativeArray *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,bool)" (?createStar@StarDatabase@@QAEPAVStar@@IPAVAssociativeArray@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z)
cel_engine.lib(solarsys.obj) : error LNK2001: unresolved external symbol "class Orbit * __cdecl CreateOrbit(class PlanetarySystem *,class AssociativeArray *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,bool)" (?CreateOrbit@@YAPAVOrbit@@PAVPlanetarySystem@@PAVAssociativeArray@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z)
cel_engine.lib(stardb.obj) : error LNK2019: unresolved external symbol "void __cdecl FillinRotationElements(class AssociativeArray *,class RotationElements &)" (?FillinRotationElements@@YAXPAVAssociativeArray@@AAVRotationElements@@@Z) referenced in function "public: class Star * __thiscall StarDatabase::createStar(unsigned int,class AssociativeArray *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,bool)" (?createStar@StarDatabase@@QAEPAVStar@@IPAVAssociativeArray@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z)
cel_engine.lib(solarsys.obj) : error LNK2019: unresolved external symbol "void __cdecl FillinRotationElements(class AssociativeArray *,class RotationElements &)" (?FillinRotationElements@@YAXPAVAssociativeArray@@AAVRotationElements@@@Z) referenced in function "public: class std::locale::facet * __thiscall std::locale::facet::_Decref(void)" (?_Decref@facet@locale@std@@QAEPAV123@XZ)
cel_engine.lib(solarsys.obj) : error LNK2019: unresolved external symbol "bool __cdecl ParseDate(class AssociativeArray *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,double &)" (?ParseDate@@YA_NPAVAssociativeArray@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAN@Z) referenced in function "class Body * __cdecl CreatePlanet(class PlanetarySystem *,class Body *,class AssociativeArray *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,enum Disposition,bool)" (?CreatePlanet@@YAPAVBody@@PAVPlanetarySystem@@PAV1@PAVAssociativeArray@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@W4Disposition@@_N@Z)
.\Debug/Celestia.exe : fatal error LNK1120: 19 unresolved externals

Build log was saved at "file://c:\celestia\src\celestia\Debug\BuildLog.htm"
Celestia - 23 error(s), 15 warning(s)


---------------------- Done ----------------------

Build: 5 succeeded, 1 failed, 0 skipped


I really can not understand what is going wrong.


Thanks in advance.

Avatar
selden
Developer
Posts: 10053
Joined: 04.09.2002
With us: 16 years 10 months
Location: NY, USA

Post #63by selden » 21.10.2005, 17:58

Sorry: I use makerelease.bat and have none of those errors.
Hopefully someone else can help.
Selden

Malenfant
Posts: 1412
Joined: 24.08.2005
With us: 13 years 10 months

Re: Phase 1

Post #64by Malenfant » 03.11.2005, 17:56

Paolo wrote:1.3 Configure WinCVS
Now it is necessary to configure WinCVS.

Create a new folder on your Hard Disk.
I suggest to use a folder in the root.
As example my folder is: C:\CVS.
This folder will be the base for our local CVS tree.

1.4 Access to SourceForge
It is necessary to input the account settings to access Surceforge CVS Tree.
Open WinCVS
Activate the preferences dialog: Menu\Admin\Preferences...
In the general tab input:

Code: Select all

Authentication: pserver
Path: /cvsroot/celestia
Host address: cvs.celestia.sourceforge.net
User name: anonymous
CVS root: anonymous@cvs.celestia.sourceforge.net:/cvsroot/celestia


In the WinCvs tab set the HOME path : "C:\CVS".

Now you can try to connect to the Sourceforge repository.

Activate the login dialog: Menu\Admin\Login...

Set the "Force Using -d" checkbox.

Press Ok


I've just downloaded winCVS 2.0.2.4 (build 4), and all these instructions seems to refer to buttons and commands that aren't in those places anymore. I'm totally clueless with winCVS, can someone please update these for the latest version?

Avatar
selden
Developer
Posts: 10053
Joined: 04.09.2002
With us: 16 years 10 months
Location: NY, USA

Post #65by selden » 03.11.2005, 21:17

You might want to consider installing Cygwin, a free Unix emulator for Windows. It includes the same version of CVS that's used under Unix and Linux. It includes many other standard Unix utilities, like the Gnu compiler suite, Xwindows, bash, etc.
Selden

Malenfant
Posts: 1412
Joined: 24.08.2005
With us: 13 years 10 months

Post #66by Malenfant » 04.11.2005, 15:49

I think I'd rather try to get winCVS working for now at least... does anyone know where to enter these values in the latest version now?

j_reins
Posts: 2
Joined: 10.07.2005
With us: 14 years

Post #67by j_reins » 14.11.2005, 02:17

All,

I also am new to Celestia Development... but not development per se. My language of choice is FORTRAN (please, no elderly jokes), and I have significant experience developing simulations. I have recently started using C++, and have enough knowledge to make me dangerous ;-) So, here's something I don't understand.

I downloaded the Celestia tree with Tortoise, installed Microsoft Platform SDK, and Microsoft Visual C++ Toolkit 2003 as recommended. I also set up a duplicate "MyCelestia" directory etc. per the "Free Windows-Based compiling for Celestia" sticky instructions.

When I first began to compile I noticed that a few things weren't being found... so I modified celvars.bat to look like this:

Code: Select all

Set PATH=C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;%PATH%
Set PATH=C:\Program Files\Microsoft Platform SDK\Bin\win64;%PATH%
Set INCLUDE=C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;%INCLUDE%
Set LIB=C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;%LIB%

Set INCLUDE=C:\Program Files\Microsoft Platform SDK\Include;%INCLUDE%
Set LIB=C:\Program Files\Microsoft Platform SDK\Lib;%LIB%
Set INCLUDE=C:\Program Files\Microsoft Platform SDK\Include\mfc;%INCLUDE%
Set LIB=C:\Program Files\Microsoft Platform SDK\Lib\IA64\mfc;%LIB%


All was now found, but the compiler/librarian were still not happy. In checking the compiler flags in the various make files, I discovered the part I don't understand.

First, here is a list of the original debug compiler flags from L:\MyCelestia\src\celutil\Util.mak :

CPPFLAGS=/nologo /MLd /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D WINVER=0x0400 /D _WIN32_WINNT=0x0400 /Fp"$(INTDIR)\celestia.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c $(INCLUDEDIRS)

With the cl.exe compiler from Toolkit 2003, several of these options are obsolete: /MLd, /YX, /GX, /GZ. And option /Gm requires /Zi not /ZI. So, here's what I did. I replaced in every makefile

(debug)
/ZI with /Zi
/MLd with /MTd (single thread no longer supported)
/GX with /EHsc (equivalent)
/GZ with /RTC1 (equivalent)

(release)
/ML with /MT (single thread no longer supported)
/GX with /EHsc

I also replaced /YX with /Yc... and here's the problem. I get tons of massages that state :

Code: Select all

wintimer.obj : warning LNK4006: "void __cdecl SetMouseCursor(char const *)" (?SetMouseCursor@@YAXPEBD@Z) already defined in winutil.obj; second definition ignored


which - I think - tells me that the pre-compiled header isn't being created quite right. Being new to C++, pre-compiled headers are still a mystery to me. But I'm pretty sure that replacing /YX with /Yc is the root of my problem. On-line reading tells me that I can create a list of headers that I want to precompile, but I'm at a loss. Should we include them all?

Finally, even though I get a ton of link warnings the build continues until:

.\Release\avicapture.obj : fatal error LNK1112: module machine type 'IA64' conflicts with target machine type 'X86'

I've poured over avicapture.cpp... and I just can't find anything that says it's an IA64 object. But even so, we include "Microsoft Platform SDK\Bin\win64" in the PATH statement, so maybe some things are OK to be 64 bit?

Thanks in advance,
JR[/code]

j_reins
Posts: 2
Joined: 10.07.2005
With us: 14 years

Post #68by j_reins » 14.11.2005, 02:19

All,

I also am new to Celestia Development... but not development per se. My language of choice is FORTRAN (please, no elderly jokes), and I have significant experience developing simulations. I have recently started using C++, and have enough knowledge to make me dangerous ;-) So, here's something I don't understand.

I downloaded the Celestia tree with Tortoise, installed Microsoft Platform SDK, and Microsoft Visual C++ Toolkit 2003 as recommended. I also set up a duplicate "MyCelestia" directory etc. per the "Free Windows-Based compiling for Celestia" sticky instructions.

When I first began to compile I noticed that a few things weren't being found... so I modified celvars.bat to look like this:

Code: Select all

Set PATH=C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;%PATH%
Set PATH=C:\Program Files\Microsoft Platform SDK\Bin\win64;%PATH%
Set INCLUDE=C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;%INCLUDE%
Set LIB=C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;%LIB%

Set INCLUDE=C:\Program Files\Microsoft Platform SDK\Include;%INCLUDE%
Set LIB=C:\Program Files\Microsoft Platform SDK\Lib;%LIB%
Set INCLUDE=C:\Program Files\Microsoft Platform SDK\Include\mfc;%INCLUDE%
Set LIB=C:\Program Files\Microsoft Platform SDK\Lib\IA64\mfc;%LIB%


All was now found, but the compiler/librarian were still not happy. In checking the compiler flags in the various make files, I discovered the part I don't understand.

First, here is a list of the original debug compiler flags from L:\MyCelestia\src\celutil\Util.mak :

CPPFLAGS=/nologo /MLd /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D WINVER=0x0400 /D _WIN32_WINNT=0x0400 /Fp"$(INTDIR)\celestia.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c $(INCLUDEDIRS)

With the cl.exe compiler from Toolkit 2003, several of these options are obsolete: /MLd, /YX, /GX, /GZ. And option /Gm requires /Zi not /ZI. So, here's what I did. I replaced in every makefile

(debug)
/ZI with /Zi
/MLd with /MTd (single thread no longer supported)
/GX with /EHsc (equivalent)
/GZ with /RTC1 (equivalent)

(release)
/ML with /MT (single thread no longer supported)
/GX with /EHsc

I also replaced /YX with /Yc... and here's the problem. I get tons of massages that state :

Code: Select all

wintimer.obj : warning LNK4006: "void __cdecl SetMouseCursor(char const *)" (?SetMouseCursor@@YAXPEBD@Z) already defined in winutil.obj; second definition ignored


which - I think - tells me that the pre-compiled header isn't being created quite right. Being new to C++, pre-compiled headers are still a mystery to me. But I'm pretty sure that replacing /YX with /Yc is the root of my problem. On-line reading tells me that I can create a list of headers that I want to precompile, but I'm at a loss. Should we include them all?

Finally, even though I get a ton of link warnings the build continues until:

.\Release\avicapture.obj : fatal error LNK1112: module machine type 'IA64' conflicts with target machine type 'X86'

I've poured over avicapture.cpp... and I just can't find anything that says it's an IA64 object. But even so, we include "Microsoft Platform SDK\Bin\win64" in the PATH statement, so maybe some things are OK to be 64 bit?

Thanks in advance,
JR[/code]

Avatar
selden
Developer
Posts: 10053
Joined: 04.09.2002
With us: 16 years 10 months
Location: NY, USA

Post #69by selden » 14.11.2005, 11:37

So far as I know, nobody has actually tried to get Celestia to work using the MS 64bit compiler. I do know that people have gotten it to run on at least one other 64bit architecture, however: on an Alpha under Linux.
Selden

GlobeMaker
Posts: 216
Joined: 30.10.2005
With us: 13 years 8 months

Post #70by GlobeMaker » 20.12.2005, 20:59

How to get the C++ source code for Celestia with the latest WinCVS

The latest WinCVS has different menus than those described in
a previous post on this subject by Paolo. That is why this new
description is needed.


Step 1 Get Python. To download Python, go to the official Website. http://www.python.org/

Step 2 Get WinCVS, the Concurrent Versions System 2.0.51d http://www.wincvs.org/

Step 3 Enter info into WinCVS to prepare for getting source code

Step 3b Create a new folder on your Hard Disk. I suggest to
use a folder in the root. As an example my folder is: C:\CVS.
This folder will be the base for our local CVS tree.

Step 3c Use menu Admin:Preferences to set Home to c:\CVS

Step 3d Understand that the Sourceforge Repository is a
remote website. You will get your own copies of the source code
into your computer directory c:\CVS\celestia (or c:\celestia if
you make a mistake like I did).


Step 4 Communicate with the SourceForge website where the
C++ source code is kept

Step 4a Use the WinCVS menu Admin:Login...
A dialog window appears called Login settings.
Put a checkmark in the CVSROOT box

Step 4b
Paste this line in the login line for cvsroot
:pserver:anonymous@cvs.sourceforge.net:/cvsroot/celestia



Step 4c
When you are prompted for a password, do not type in anything,
just hit the OK button

The console should report your success with code 0, as shown
on 3 lines here:

cvs -d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/celestia login
Logging in to :pserver:anonymous@cvs.sourceforge.net:2401:/cvsroot/celestia

***** CVS exited normally with code 0 *****

If you get code 1, try again. Maybe the connection is too busy to
service your login.


Step 4d Checkout the files with these commands. The first time
this is a checkout. Future WinCVS sessions are updates, and
the commands are the same.

Step 4e Use the menu Admin:Command Line...

Step 4f check the box for CVSROOT and put this line in the space
next to that box:
:pserver:anonymous@cvs.sourceforge.net:/cvsroot/celestia



Step 4f2 : check the box for Execute in directory, enter c:\CVS

Step 4g paste the command on the next line into the big empty command line box:
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/celestia co -P celestia

Hit the OK button.

Wait while files are then listed as they are sent to your computer. The console will show stuff like this :


cvs -d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/celestia -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/celestia co -P celestia (in directory C:\CVS)
cvs checkout: cwd=C:\CVS ,current=C:\CVS
cvs checkout: Updating celestia
U celestia/ABOUT-NLS
U celestia/AUTHORS
.
.
.

Wait while files are then listed as they are sent to your computer.

The files were put in c:\CVS\celestia

Also, download the Windows-specific shared libraries that aren't
included with Celestia on SourcForge. http://celestiaproject.net/celestia/files/winlibs-new.zip
Unzip these files and put them in a directory with the other
library files. I used :
C:\CVS\celestia\lib
C:\CVS\celestia\inc
And follow all the instructions in
http://www.celestiaproject.net/forum/viewtopic ... 7cca3cbb26
because there are .dll files to copy, things to edit, use Microsoft Internet Explorer to download and set up the SDK... Just read it all and do the work.

Now you have the files. There are many files to understand.
You can verify that the files have C++ code by looking at one
important looking file, like C:\CVS\celestia\src\celengine\render.cpp

Andoni
Posts: 1
Joined: 02.08.2006
With us: 12 years 11 months

Post #71by Andoni » 02.08.2006, 09:04

Hi All:
Here you have a web page explaining how to configure WinCVs for Annonymous pserver authentication.

http://sourceforge.net/docman/display_d ... ous_config

I hope it will be helpful.

Jaa ne.

Malenfant
Posts: 1412
Joined: 24.08.2005
With us: 13 years 10 months

Post #72by Malenfant » 26.09.2006, 01:15

Are Globemaker's instructions still valid? I downloaded Python 2.5 and
WinCVS 2.0.2.4 and for starters after installing both and restarting WinCVS
still thought that Python wasn't installed (I pointed it to the right dll folder and
it found TCL at least...).

After that, I tried logging into the server as described and I keep getting
either "code 1" errors, or it asks for a password, I hit OK, and it thinks for a
while and then gives me a code 1.

Am I doing something wrong here? Or are the instructions out of date again?
My Celestia page: Spica system, planetary magnitudes script, updated demo.cel, Quad system

cartrite
Posts: 1778
Joined: 15.09.2005
With us: 13 years 10 months
Location: Pocono Mountains, Pennsylvania, USA

Post #73by cartrite » 26.09.2006, 03:16

Malenfant wrote:
Am I doing something wrong here? Or are the instructions out of date again?


the addr changed from :pserver:anonymous@cvs.sourceforge.net:/cvsroot/celestia
to :pserver:anonymous@celestia.cvs.sourceforge.net:/cvsroot/celestia
Toshiba Satellite P875=S7200 laptop, Intel i5 processor 2.5 ghz 6 gb ram, Graphics Intel(R) HD Graphics 4000 openSUSE Leap42.3
and Tumbleweed

cartrite
Posts: 1778
Joined: 15.09.2005
With us: 13 years 10 months
Location: Pocono Mountains, Pennsylvania, USA

Post #74by cartrite » 12.01.2008, 21:22

I recently installed Microsoft Visual C++ 2005 Express Edition - ENU and the Platform SDK and was trying to build Celestia by the GUI from 2005 Express.
Every file failed to build because of the missing include file windows.h.
After some digging I found the way to set the environment variables with the C++ Express GUI. If you click on Tools => options it brings up a window. On the left side you should see a window that has Projects and Settings. Expand that and click on VC++ Directories. On the right hand side you should see a box for Show Directories for. Set it to Executable Files. Make sure the Platform SDK is before (on top of) $(VCInstallDir)bin. Do the same for Include and Lib by changing the box for Show Directories for.
Now go back to the Executable files. When you click on Platform SDK you should see a browse button to the right. You can browse to the location where the bin folder for Platform SDK is located. Mine was in C:\Program Files\Microsoft Platform SDK\Bin. Do the same for the Include directories and Lib directories.

After I did all this I still got an error for a missing header afxres.h.
I fixed this by adding a line to the Include window. I clicked on the browse button to the right and navigated to C:\Program Files\Microsoft Platform SDK\Include\mfc and moved that line just below the line for C:\Program Files\Microsoft Platform SDK\Include. Click on OK. Now it should build without errors just by right clicking on celestia in the left hand window and chose build. That creates a folder called Release in the Celestia's root directory and the Celestia executable is inside.

I ran into another problem when I tried to compile from the command line with makerelease.bat. I would get a link error that said libc could not be found. I found this post by Selden. http://www.celestiaproject.net/forum/viewtopic ... 7647#77647
So I copied libcmt.lib from C:\Program Files\Microsoft Visual Studio 8\VC\lib and renamed it to libc.lib. I get this warning but......

Code: Select all

Generating Code...
        link.exe @C:\DOCUME~1\cartrite\LOCALS~1\Temp\nm179.tmp
LINK : warning LNK4098: defaultlib 'LIBC' conflicts with use of other libs; use
/NODEFAULTLIB:library
        cd ..

H:\celestia\msvc-test\celestia\src>cd ..

H:\celestia\msvc-test\celestia>copy src\celestia\Release\celestia.exe .
        1 file(s) copied.
eveything seems to work ok. Unlike building with qt4, I was unsure where to put /NODEFAULTLIB:library in the build files. I tried to put in winbuild.mak but that didn't work. Maybe this should be fixed the right way.

I hope this may be some help to those new to Microsoft Visual C++ 2005 Express Edition.

cartrite
Toshiba Satellite P875=S7200 laptop, Intel i5 processor 2.5 ghz 6 gb ram, Graphics Intel(R) HD Graphics 4000 openSUSE Leap42.3
and Tumbleweed

Avatar
Chuft-Captain
Posts: 1767
Joined: 18.12.2005
With us: 13 years 7 months

Post #75by Chuft-Captain » 13.01.2008, 18:48

Theres now a 2008 version: http://www.microsoft.com/express/vc/

Has anyone tried compiling Celestia with this version, or is the 2005 version better/more stable?
"Is a planetary surface the right place for an expanding technological civilization?"
-- Gerard K. O'Neill (1969)

CATALOG SYNTAX HIGHLIGHTING TOOLS LAGRANGE POINTS

Avatar
selden
Developer
Posts: 10053
Joined: 04.09.2002
With us: 16 years 10 months
Location: NY, USA

Post #76by selden » 13.01.2008, 20:06

CC,

Celestia is currently incompatible with VS2008.
There are too many differences in the compiler and in the libraries that it uses.
Selden

Avatar
Chuft-Captain
Posts: 1767
Joined: 18.12.2005
With us: 13 years 7 months

Post #77by Chuft-Captain » 14.01.2008, 07:17

I thought that might be the case.
I googled for the 2005 version and all that came up (at least on page 1) was 2008 links.

Is it still possible to download 2005 version?
"Is a planetary surface the right place for an expanding technological civilization?"
-- Gerard K. O'Neill (1969)

CATALOG SYNTAX HIGHLIGHTING TOOLS LAGRANGE POINTS

cartrite
Posts: 1778
Joined: 15.09.2005
With us: 13 years 10 months
Location: Pocono Mountains, Pennsylvania, USA

Post #78by cartrite » 14.01.2008, 09:17

I just downloaded it a couple of days ago. Sorry I didn't bookmark the link. You have check out the 2008 links carefully. Somewhere, on one of them, in the upper right corner, is a link to previous versions.
cartrite
Toshiba Satellite P875=S7200 laptop, Intel i5 processor 2.5 ghz 6 gb ram, Graphics Intel(R) HD Graphics 4000 openSUSE Leap42.3
and Tumbleweed

Avatar
Chuft-Captain
Posts: 1767
Joined: 18.12.2005
With us: 13 years 7 months

Post #79by Chuft-Captain » 14.01.2008, 15:54

Thanks Cartrite,

That's not surprising. It seems M$ is always keen to recruit new beta-testers for their new versions (ie. Users :wink: )
Note the size of the button for the 2008 version!!!!

I shouldn't complain...at least this is free software! :)

I'll have a hunt for the link.

PS. What version is Chris using for current builds? 2003??
"Is a planetary surface the right place for an expanding technological civilization?"
-- Gerard K. O'Neill (1969)

CATALOG SYNTAX HIGHLIGHTING TOOLS LAGRANGE POINTS

cartrite
Posts: 1778
Joined: 15.09.2005
With us: 13 years 10 months
Location: Pocono Mountains, Pennsylvania, USA

Post #80by cartrite » 14.01.2008, 16:22

I'm not sure. I think he is using a MinGW compiler to build the QT Gui he has been working on. Before that I think he was using vs2005.

http://www.microsoft.com/express/2005/

Scroll down the page to the c++ link.

cartrite
Toshiba Satellite P875=S7200 laptop, Intel i5 processor 2.5 ghz 6 gb ram, Graphics Intel(R) HD Graphics 4000 openSUSE Leap42.3
and Tumbleweed


Return to “Development”

Who is online

Users browsing this forum: 3 guests
Bots: Bing [Bot]