How do I compile rexviewer 0.3??

0 views
Skip to first unread message

Carl Kenner

unread,
Sep 8, 2008, 11:20:42 PM9/8/08
to real...@googlegroups.com
I've been trying to compile RexViewer 0.3 in debug build in Visual C++
Express 2008 SP1. Unfortunately (but not unexpectedly), it doesn't
compile, and I'm betting it doesn't compile in VS 2005 either.

Firstly, there is no debug version of OgreMainStatic.lib, so I had to
tell it to look in the release folder.

Boost gives lots of stupid warnings about not recognising this
compiler version, so I commented out that line of code that generates
the warning when the Visual C++ compiler version is higher than a
certain number. I don't think that is a problem though.

Boost also gives a #$%^#@ error about mixing the static and dll
versions being a bad idea. I have no idea how to fix that, so I just
commented out the error generating line (it is an artificially
generated error).

I fixed a couple of other things too, but I can't remember what exactly.

I managed to get everything to compile now, but it won't link. How on
earth am I supposed to debug linker errors?? (This is why I program in
Delphi.)

Anyway, before I can do anything with RexViewer, I need to be at least
able to build it.

So how do I build the darn thing? And how did people build it in the
first place? They certainly didn't do it with the included code and
project files.

Heikki Törmälä

unread,
Sep 9, 2008, 3:07:04 AM9/9/08
to real...@googlegroups.com
> I've been trying to compile RexViewer 0.3 in debug build in Visual C++
> Express 2008 SP1. Unfortunately (but not unexpectedly), it doesn't
> compile, and I'm betting it doesn't compile in VS 2005 either.
> <snip>
The viewer is compiled with Visual Studio 2005 sp1. Other versions of
Visual Studio may cause problems with the included libraries since they
have been compiled with 2005. You probably need to recompile all the
libraries included with the viewer.
Also currently the Viewer only compiles in 'ReleaseForDownload' mode
because we don't have sources for all the included libraries and no binary
debug versions exists of them.

For reference, here are the compiling instructions that are currently in
the svn:

Compiling the realXtend viewer 0.3 (on Windows)
-----------------------------------------------

Currently, up-to-date project/solution files exist for Visual Studio 2005
only.

Either Visual Studio 2005 or Visual Studio 2005 Express can be used to
compile
the viewer. For Express, make sure you have the Platform SDK and DirectX SDK
installed from Microsoft's website and that the development enviroment has
been
configured to use their library & include directories.

Because the realXtend viewer is based on the Second Life client, Linden Labs'
documentation on compiling can be helpful too, see
https://wiki.secondlife.com/wiki/Get_source_and_compile


1. Required other tools
-----------------------

Compiling requires Python. Download & install from
http://www.python.org/download/


2. Preparing enviroment variables
---------------------------------

Set the enviroment variable REXVIEWER_SRCDIR to point to the rexviewer
checkout
directory root. This is for "copyrex.bat" (referenced later on) to work
correctly.


3. Proprietary libraries & includes
-----------------------------------

Some proprietary libraries are left out of the viewer source. These need
to be
downloaded separately and placed to the correct directories:

3.1 OpenGL headers

The following files need to be downloaded and placed into
linden\libraries\include\GL directory of the viewer source:

glext.h
glxext.h
wglext.h

They can be downloaded from http://oss.sgi.com/projects/ogl-sample/sdk.html

Alternatively, if the link is down, you can try
http://www.opengl.org/registry/api/glext.h
http://www.opengl.org/registry/api/wglext.h
http://www.opengl.org/registry/api/glxext.h

3.2 Quicktime

Download the Quicktime Windows SDK from
http://developer.apple.com/quicktime/download/ (you need to register)

Create a subdirectory "quicktime" to linden\libraries\i686-win32\include, and
copy all header files (.h) from the SDK there, including the
CoreFoundation and
GNUCompatibility subdirectories.

Copy the file QTMLClient.lib from the SDK to
linden\libraries\i686-win32\lib_release &
linden\libraries\i686-win32\lib_debug

3.3 Skype4COM.dll

Download Skype4COM.dll from https://developer.skype.com/Docs/Skype4COM/Start
Copy the DLL to a system directory (for example C:\Windows) and register it
using the following command in a command line prompt:

regsvr32 skype4com.dll


4. Compiling
------------

Open the solution file "indra_complete.sln" from linden\indra\indra_complete
directory.

Use the "ReleaseForDownload" configuration to compile the viewer.

Depending on your Cygwin version, the file indra.y in the lscript_compile_fb
subproject may produce errors. In that case, right-click it in Solution
Explorer
and select Properties -> Custom Build Step -> General. Check the command
line;
if the line "C:\cygwin\bin\mv.exe ytab.hpp ytab.h" fails, check what file
Bison
is producing instead of ytab.hpp, and modify the line accordingly.


5. Compiling the Avatar Generator
---------------------------------

After checking out the avatargenerator module from SVN, it should compile
pretty
much out-of-the-box by opening avatar_generator.sln from the checkout root
directory. Use "Release" configuration to run optimally.


6. Running & making installable packages
----------------------------------------

The batch file "copyrex.bat" in the root of the source exists to make a fresh
executable directory of the realXtend client after compiling, with all (but
only) the necessary files. When you execute it, it creates a subdirectory
"out"
and copies files (the enviroment variable REXVIEWER_SRCDIR needs to be
correctly
set).

After running copyrex.bat, you should be able to execute realXtend.exe
from the
"out" directory.

To use Avatar Generator successfully (so that it sees the same 3D models
etc. as
the viewer) it should be placed into a subdirectory "avatar_generator" within
"out" and have its "bin" and "data" directory trees copied there, ending
up with
a directory structure like this:

out
out\avatar_generator
out\avatar_generator\bin
out\avatar_generator\data

By using the Nullsoft installer system (NSIS) you can create an installer
package out of the "out" directory. The necessary installer script
(realxtend.nsi) & splash screen (splash.bmp) are in the root directory of the
realXtend viewer source.

Note that the Avatar Generator itself does not care of its directory name,
but
the installer script expects it to be found in the "avatar_generator"
subdirectory.


- Heikki / RealXtend developer.


Ryan McDougall

unread,
Sep 9, 2008, 3:58:39 AM9/9/08
to real...@googlegroups.com
On Tue, Sep 9, 2008 at 4:07 PM, Heikki Törmälä
<heikki....@ludocraft.com> wrote:
>
>> I've been trying to compile RexViewer 0.3 in debug build in Visual C++
>> Express 2008 SP1. Unfortunately (but not unexpectedly), it doesn't
>> compile, and I'm betting it doesn't compile in VS 2005 either.
>> <snip>
> The viewer is compiled with Visual Studio 2005 sp1. Other versions of
> Visual Studio may cause problems with the included libraries since they
> have been compiled with 2005. You probably need to recompile all the
> libraries included with the viewer.
> Also currently the Viewer only compiles in 'ReleaseForDownload' mode
> because we don't have sources for all the included libraries and no binary
> debug versions exists of them.

A lot of the problems with compiling are related to the rex and other
LL-based viewers are due to the LL build system itself. Have you
compiled the SL viewer ever? If not you may find, the SL viewer build
instructions helpful.
http://wiki.secondlife.com/wiki/Get_source_and_compile

Basically my experience and advice is this: get all the sources for
the dependencies and build them yourself, boost, fmod, etc. Its extra
work, but well worth it when you're not scratching you head wondering
why its not linking or its having random crashes.

Rex guys -- given that build is one of the most critical parts of an
open source project, is there any way to make it easier to build the
rex platform?

Carl -- when you get the platform built, can you suggest changes that
should be made to help make your work easier?

Cheers,

Carl Kenner

unread,
Sep 10, 2008, 4:55:14 AM9/10/08
to real...@googlegroups.com
Thanks for all the assistance. I have tried unsuccessfully to compile
SecondLife before. I'm really not good at linking.

Are lex and yacc actually neccessary in RexViewer? I was pleased to
see that part seemed to compile fine without them.

The first thing I am going to change is to put in some more debug
prints in the initialisation code, so I can see where it crashes. Lots
of different things happen between the two debug prints that I know it
crashes between.

On an unrelated note, I finally worked out how to make a program
connect a Wii Remote automatically (with the Microsoft stack). Yay!
Connecting them manually was a pain in the neck. So I'm going to go
work on that for a bit.

2008/9/9 Ryan McDougall <semp...@gmail.com>:

Lasse Öörni

unread,
Sep 10, 2008, 5:01:30 AM9/10/08
to real...@googlegroups.com
On Wed, Sep 10, 2008 at 11:55 AM, Carl Kenner <carl....@gmail.com> wrote:
> Are lex and yacc actually neccessary in RexViewer? I was pleased to
> see that part seemed to compile fine without them.

No, we assume that we don't touch the LSL parser stuff, so the
parser-generation part is removed from the VS build, and it simply
uses precompiled parser code that's in the SVN. We used to have
trouble based on which cygwin version was installed on each
developer's machine :)

- Lasse / realXtend developer

Reply all
Reply to author
Forward
0 new messages