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

Description: The place to discuss creating, porting and modifying Celestia's source code.

selden
Avatar
selden
Posts: 9982
With us: 14 years 7 months
Location: NY, USA

#81by selden » 14.01.2008, 16:23

My understanding is that the official builds of v1.5.0 prereleases have been made using Visual Studio 2005 Express.

Building Celestia with VS2008 does not work.

The Celestia WikiBook provides links to the VS2005 download pages at http://en.wikibooks.org/wiki/Celestia/D ... 2_platform
Selden

cartrite
cartrite
Posts: 1706
With us: 11 years 7 months
Location: Pocono Mountains, Pennsylvania, USA

#82by cartrite » 14.01.2008, 16:28

Selden,
The link on Wiki brings you to a 2005 download page but when you click on the download link it redirects you to download 2008. For now, this one takes you to the 2005 download link.
http://www.microsoft.com/express/2005/d ... fault.aspx
cartrite
Windows 7 Home Premium 64, Toshiba Satellite P875=S7200 laptop, Intel i5 processor 2.5 ghz 6 gb ram, Graphics Intel(R) HD Graphics 4000 Driver ver 8.15.10.2752

selden
Avatar
selden
Posts: 9982
With us: 14 years 7 months
Location: NY, USA

#83by selden » 14.01.2008, 16:37

Thanks for pointing out the problem.

I've updated the Web install link to point to the vs2005 page.

The disk install link seems to be OK.
Selden

Chuft-Captain
Avatar
Chuft-Captain
Posts: 1725
With us: 11 years 4 months

#84by Chuft-Captain » 14.01.2008, 17:11

Thanks guys.

I suspect my machine probably doesn't yet have all the pre-requisites for installing the IDE, so I was hoping to download the C++ install package and install it later. Unfortunately this link appears to be one of these "web installs" which M$ seems to like to use.

Very frustrating, but I might have to put this on hold for now.

Thanks for the link anyway.
"Is a planetary surface the right place for an expanding technological civilization?"
-- Gerard K. O'Neill (1969)

O'NEILL COLONY
LAGRANGE POINTS

selden
Avatar
selden
Posts: 9982
With us: 14 years 7 months
Location: NY, USA

#85by selden » 14.01.2008, 17:20

CC,

The WikiBook page includes a link to an MS page which lets you download an ISO disk image of the VS2005 installation kit.
Selden

Chuft-Captain
Avatar
Chuft-Captain
Posts: 1725
With us: 11 years 4 months

#86by Chuft-Captain » 14.01.2008, 18:12

Excellent, that's exactly what I need Selden.

It might be a while before I can get my machine up to spec, but at least now I can download now, and defer the actual install until later.

Thanks for that.

Cheers
CC
"Is a planetary surface the right place for an expanding technological civilization?"
-- Gerard K. O'Neill (1969)

O'NEILL COLONY
LAGRANGE POINTS

t00fri
Avatar
t00fri
Age: 15
Posts: 8800
With us: 15 years
Location: Hamburg, Germany

#87by t00fri » 14.01.2008, 18:21

selden wrote:CC,

The WikiBook page includes a link to an MS page which lets you download an ISO disk image of the VS2005 installation kit.


Thanks,

would anyone know for sure whether this ISO includes the Service Pack SP1 of the VS C++ 2005 Express compiler? This is offered on the WEB download but no comments on the ISO download page!!

F.
Image

selden
Avatar
selden
Posts: 9982
With us: 14 years 7 months
Location: NY, USA

#88by selden » 14.01.2008, 18:24

Sorry: I don't know, but I suspect it does not include the patches.
Selden

Chuft-Captain
Avatar
Chuft-Captain
Posts: 1725
With us: 11 years 4 months

#89by Chuft-Captain » 14.01.2008, 18:26

t00fri wrote:
selden wrote:CC,

The WikiBook page includes a link to an MS page which lets you download an ISO disk image of the VS2005 installation kit.

Thanks,

would anyone know for sure whether this ISO includes the Service Pack SP1 of the VS C++ 2005 Express compiler? This is offered on the WEB download but no comments on the ISO download page!!

F.


Will this do? --- http://www.microsoft.com/downloads/deta ... laylang=en

[EDIT: I may have mis-understood you Fridger, you actually want SP1 of the compiler, not the SDK, yes??? ]

... however, I assume it's advisable to also install teh SP1 of the SDK, so maybe this link will still be useful to you.
"Is a planetary surface the right place for an expanding technological civilization?"
-- Gerard K. O'Neill (1969)

O'NEILL COLONY
LAGRANGE POINTS

Chuft-Captain
Avatar
Chuft-Captain
Posts: 1725
With us: 11 years 4 months

#90by Chuft-Captain » 14.01.2008, 18:39

A silly question... what's better to use : .IMG or .ISO ???
"Is a planetary surface the right place for an expanding technological civilization?"
-- Gerard K. O'Neill (1969)

O'NEILL COLONY
LAGRANGE POINTS

t00fri
Avatar
t00fri
Age: 15
Posts: 8800
With us: 15 years
Location: Hamburg, Germany

#91by t00fri » 14.01.2008, 18:51

Thanks Chuft,

I meant the SP1 of the VS C++ 2005 Express compiler. But it is also not stated what is exactly on the CD ISO that I have downloaded and burnt just now.

Bye Fridger
Image

cartrite
cartrite
Posts: 1706
With us: 11 years 7 months
Location: Pocono Mountains, Pennsylvania, USA

#92by cartrite » 14.01.2008, 19:18

t00fri wrote:Thanks Chuft,

I meant the SP1 of the VS C++ 2005 Express compiler. But it is also not stated what is exactly on the CD ISO that I have downloaded and burnt just now.

Bye Fridger
I'm not sure what is on the iso but the web version was without sp1. It got updated the next day to sp1 by windows update though.
cartrite
Windows 7 Home Premium 64, Toshiba Satellite P875=S7200 laptop, Intel i5 processor 2.5 ghz 6 gb ram, Graphics Intel(R) HD Graphics 4000 Driver ver 8.15.10.2752

Epimetheus
Epimetheus
Posts: 42
With us: 9 years

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

#93by Epimetheus » 01.04.2008, 09:46

THANKS PAOLO! I really appreciate you taking the time to share your insights,it should save me a lot of time! I've just built the source for QT 4 to run with VS 2005 and just downloaded the Celestia source SVN tree, so your instructions will be put to good use. I'll let you know how it goes!

:arrow: Be sure to see Chris' announcement regarding new SVN version control software! (quoted below)
Celestia has now switched to using Subversion (SVN) for source code control. The CVS repository still exists, but no new changes will be committed there. Anyone working on Celestia or interested in using the latest version must use SVN.
posted by chris

APOLLONIAN: Check out the devguide.txt file in the celestia folder of the source distribution. It lists a number of the main classes used by Celestia.
Computer Info:

MoBo: GigaByte 6-Quad GA-965P DQ6
CPU: Intel Core 2 6700 @ 2.66GHz
RAM: Ocz 2GB DDR2 800MHz
HDD: Seagate 400GB SATA
VD: Nvidia GeForce 7950 GT OC 512MB
OS: MS XP Pro SP2
Celestia 1.5.1.4342 Qt4 Experimental

Epimetheus
Epimetheus
Posts: 42
With us: 9 years

Re:

#94by Epimetheus » 03.04.2008, 04:27

t00fri wrote:While I have no idea what this fancy CVS software is good for, I do it quite differently on my Windows XP laptop:

Since I have installed a layer of CYGWIN Linux on top of XP, a little (but clever) script does ALL of the following actions, when I type its name ('cel') into a CYGWIN zsh terminal:

Bye Fridger

Hello Fridger,
You seem like the goto guy on this stuff: I'm trying to put together some documentation for setting up the development environment for compiling Celestia using VS 2005. I realize that some folks have included some very detailed and excellent instructions on how to do so, but I've also noticed that many of those posts are several years old.

Is it true that the v6.1 of MS Platform SDK does not support MFC? Can Celestia compile without the dependencies on previous versions of the MS Platform SDK? From the examples I've seen for setting up a "celvars.bat" file, many point to bin, lib and include directories in the old Visual C++ 2003 Toolkit and older MS Platform SDKs. Is this due to the need for MFC support? Many of the necessary files are included with the new SDK, but files like libc.lib are not. LIBC, as you know, has been replaced by the thread-safe libcmt.lib. I've seen a number of posts regarding a link conflicts between libc.lib and libcmt.lib.

I would be interested in seeing how you've setup your PATH, LIB and INCLUDE on your machine (i.e. celvars.bat), since you're running XP and I assume VS2005? I've seen posts where some have set as little as three or four variables and others where folks pulling every dev and system lib possible. There doesn't seem to be consistence here and I'm trying to boil down to what actual external dependencies are required by Celestia for successful builds via the VS IDE. My point is similar to C++ programmers who pull the entire std namespace into file when only std::string is needed for example.

BTW, I'm also running Cygwin/Xwin w/ Qt3 support. I wanted to run the GNU C++ compiler for my projects at school, so setting up the VS environment has been a bit confusing. I'm used to Emacs or VIM and GNU++, and I've only written about four true applications in C++ and nothing coming close to the scope of Celestia. I'm a newb.

The script you wrote sounds perfect!

Keep up the good work!
Computer Info:

MoBo: GigaByte 6-Quad GA-965P DQ6
CPU: Intel Core 2 6700 @ 2.66GHz
RAM: Ocz 2GB DDR2 800MHz
HDD: Seagate 400GB SATA
VD: Nvidia GeForce 7950 GT OC 512MB
OS: MS XP Pro SP2
Celestia 1.5.1.4342 Qt4 Experimental

t00fri
Avatar
t00fri
Age: 15
Posts: 8800
With us: 15 years
Location: Hamburg, Germany

Re: Re:

#95by t00fri » 03.04.2008, 09:10

Epimetheus wrote:Hello Fridger,
You seem like the goto guy on this stuff: I'm trying to put together some documentation for setting up the development environment for compiling Celestia using VS 2005. I realize that some folks have included some very detailed and excellent instructions on how to do so, but I've also noticed that many of those posts are several years old.

Is it true that the v6.1 of MS Platform SDK does not support MFC? Can Celestia compile without the dependencies on previous versions of the MS Platform SDK? From the examples I've seen for setting up a "celvars.bat" file, many point to bin, lib and include directories in the old Visual C++ 2003 Toolkit and older MS Platform SDKs. Is this due to the need for MFC support? Many of the necessary files are included with the new SDK, but files like libc.lib are not. LIBC, as you know, has been replaced by the thread-safe libcmt.lib. I've seen a number of posts regarding a link conflicts between libc.lib and libcmt.lib.

I am actually not competent, as to special issues with VS2005, VS2008. The reason is simple: since more than 5 years I am compiling Celestia under XP with the commercial version VS++ 2003.net and never found a reason to change compilers. I also use the GUI version and the corresponding .vcproj project files. Since I am using Linux and Windows on a completely parallel level, I do all my shell scripting under XP on the CYGWIN layer, including the sync process (=> rsync) between my various Linux and Windows machines in my intranet.

In any case of compilation under Windows, one has to watch out wrto libc issues, eventually using /NODEFAULTLIB:libc on the commandline!


I would be interested in seeing how you've setup your PATH, LIB and INCLUDE on your machine (i.e. celvars.bat), since you're running XP and I assume VS2005? I've seen posts where some have set as little as three or four variables and others where folks pulling every dev and system lib possible. There doesn't seem to be consistence here and I'm trying to boil down to what actual external dependencies are required by Celestia for successful builds via the VS IDE. My point is similar to C++ programmers who pull the entire std namespace into file when only std::string is needed for example.
Since I use exclusively .vcproj files this is not so easy to document. You just have to sort out where your '.' directory of the compilation is. Then you characterize the position of your external libs and inc directories with relative path notation, like e.g. ..\..\lib.
Most required system libs are automatically added by my VS++ GUI setup.

In my Celestia.vcproj (located in the src/celestia directory), I got these relevant lines, for example:

AdditionalOptions="/D "CELX=enable" /D "
SPICE=enable" /D "LUA_VER=0x050100""

AdditionalIncludeDirectories="..;..\..\inc\libjpeg;..\..\inc\libpng;..\..\inc\libz;
"..\..\inc\lua-5.1";..\..\inc;..\..\inc\libintl;..\..\inc\spice"

AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib
opengl32.lib glu32.lib Winmm.lib libjpeg.lib libpng1.lib zlib.lib lua5.1.lib
intl.lib cel_3ds.lib cel_engine.lib cel_math.lib cel_txf.lib cel_utils.lib vfw32.lib"

OutputFile="..\..\Celestia.exe"

AdditionalLibraryDirectories=".,..\..\lib,..\cel3ds\Release,..\celengine\Release,
..\celmath\Release,..\celtxf\Release,..\celutil\Release"

But here you mileage will substantially vary, since there are different ways of setting up the project files. My custom library directory 'lib' (PNG, JPEG, zlib, spice,...) is in the root directory of the Celestia sources. There is also the 'inc' subdirectory with all the include files in separate subdirs.

F.
Image

Epimetheus
Epimetheus
Posts: 42
With us: 9 years

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

#96by Epimetheus » 03.04.2008, 09:30

Thanks, Fridger, great information! Much appreciated.
Computer Info:

MoBo: GigaByte 6-Quad GA-965P DQ6
CPU: Intel Core 2 6700 @ 2.66GHz
RAM: Ocz 2GB DDR2 800MHz
HDD: Seagate 400GB SATA
VD: Nvidia GeForce 7950 GT OC 512MB
OS: MS XP Pro SP2
Celestia 1.5.1.4342 Qt4 Experimental

Epimetheus
Epimetheus
Posts: 42
With us: 9 years

Re: Re:

#97by Epimetheus » 05.04.2008, 02:48

t00fri wrote:In my Celestia.vcproj (located in the src/celestia directory), I got these relevant lines, for example:

AdditionalOptions="/D "CELX=enable" /D "
SPICE=enable" /D "LUA_VER=0x050100""

AdditionalIncludeDirectories="..;..\..\inc\libjpeg;..\..\inc\libpng;..\..\inc\libz;
"..\..\inc\lua-5.1";..\..\inc;..\..\inc\libintl;..\..\inc\spice"

AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib
opengl32.lib glu32.lib Winmm.lib libjpeg.lib libpng1.lib zlib.lib lua5.1.lib
intl.lib cel_3ds.lib cel_engine.lib cel_math.lib cel_txf.lib cel_utils.lib vfw32.lib"

OutputFile="..\..\Celestia.exe"

AdditionalLibraryDirectories=".,..\..\lib,..\cel3ds\Release,..\celengine\Release,
..\celmath\Release,..\celtxf\Release,..\celutil\Release"

But here you mileage will substantially vary, since there are different ways of setting up the project files. My custom library directory 'lib' (PNG, JPEG, zlib, spice,...) is in the root directory of the Celestia sources. There is also the 'inc' subdirectory with all the include files in separate subdirs.

F.

Well, I sat down with my Venti Latte, read my compiler manual, and finally got Celestia to compile from the latest r4240. I took a SYSTEMATIC approach! 8) The current release is out of whack with some of the downloads and I was stepping on myself by reverting vsproj files back and forth in the wrong sequence. There are some excellent instructions regarding compiling Celestia on the boards, unfortunately, it's 2008! Some of the posts date back to 2002 and the Wiki docs need to be updated. I did have to /NODEFAULTLIB:libc. That would mean there's a deprecated dependency on libc.lib within the app at this point. The thread-safe libcmt.lib has replaced libc.lib C library in current MS IDEs and DEV environs.

Thanks for all your help!
Computer Info:

MoBo: GigaByte 6-Quad GA-965P DQ6
CPU: Intel Core 2 6700 @ 2.66GHz
RAM: Ocz 2GB DDR2 800MHz
HDD: Seagate 400GB SATA
VD: Nvidia GeForce 7950 GT OC 512MB
OS: MS XP Pro SP2
Celestia 1.5.1.4342 Qt4 Experimental

t00fri
Avatar
t00fri
Age: 15
Posts: 8800
With us: 15 years
Location: Hamburg, Germany

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

#98by t00fri » 05.04.2008, 08:53

congrats!

F.
Image

Epimetheus
Epimetheus
Posts: 42
With us: 9 years

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

#99by Epimetheus » 05.04.2008, 09:35

t00fri wrote:congrats!

F.

Bitte doch mal! :mrgreen:
Computer Info:

MoBo: GigaByte 6-Quad GA-965P DQ6
CPU: Intel Core 2 6700 @ 2.66GHz
RAM: Ocz 2GB DDR2 800MHz
HDD: Seagate 400GB SATA
VD: Nvidia GeForce 7950 GT OC 512MB
OS: MS XP Pro SP2
Celestia 1.5.1.4342 Qt4 Experimental

cartrite
cartrite
Posts: 1706
With us: 11 years 7 months
Location: Pocono Mountains, Pennsylvania, USA

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

#100by cartrite » 05.04.2008, 10:11

I did have to /NODEFAULTLIB:libc. That would mean there's a deprecated dependency on libc.lib within the app at this point. The thread-safe libcmt.lib has replaced libc.lib C library in current MS IDEs and DEV environs.
I found that this was only needed when compiling from the command line with makerelease.bat and when compiling QT4 with Windows. I don't need to change anything if I compile with celestia.vcproj using the MS2005/2008 C++Express GUI without QT4 code.
cartrite
Windows 7 Home Premium 64, Toshiba Satellite P875=S7200 laptop, Intel i5 processor 2.5 ghz 6 gb ram, Graphics Intel(R) HD Graphics 4000 Driver ver 8.15.10.2752


Return to “Development”

Who is online (over the past 5 minutes)

Users browsing this forum: 2 guests