PDA

View Full Version : building from source..?



bobster
04-18-2007, 08:18 PM
First off, thanks for the great job on this project.
I am stumped however..
I don't know, maybe it's just me and my setup (winxp pro sp2, MS Express C++) but I can't get the server to build properly.
Grabbing the files from cvs rep using TortoiseCVS 1.8.12.
Opening the MySEQ.server.sln, then building - release config.
First of all, I get endline errors when opening files (.h / .cpp) - result of being written in linux I guess. - convert them all to Unix(LF).

What really makes the compiler squeal like a pig is :


#define THROW_WARNING(...) \
{ \
ostrstream strm; \
strm << "Warning: " << __VA_ARGS__ << ends ; \
throw Exception(EXCLEV_WARNING, strm.str()); \
}

(and ERROR) in "common.h".

\Common.h(89) : error C2447: '{' : missing function header (old-style formal list?)
\Common.h(103) : error C2447: '{' : missing function header (old-style formal list?)

No matter how I try, compiler won't accept it, forcing me to mod alot of the files to exclude all references, leaving functions out..

Any hints on what might be wrong, or should I just smack my head in the wall till something gives?



Oh, on a sidenote..
Browsing the cvs rep, I see alot of files used still hail updates from 2yrs back.
Not to step on any toes here, but is everything on source side up to date vs the .zip release ?

Another sidenote.. has the server been tested against Vista and it's userlevel restricition ? (denying to be logged on with admin rights)
In my head, that spells issues with server being able probe the process.

Regards
Bobster
-- aspiring wannabe --

Seaxouri
04-19-2007, 07:34 PM
I imagine its your cvs tool. I just use the Cygwin command line one.

CVS stores files in a certain format, but you can configure it to convert EOL chars as it extracts.

The MSVC editor does a nice job of screwing up EOL chars too, so I get a mixmatch sometimes.

I would guess that you have extra chars after the '\' in that file. The slash is a continuation character, which means to glue the next line to the current line as if they were all on one line. However, if there are *any* chars AFTER the slash, then it is not a continuation char, and the compiler will just treat that as the end of the line.

Make sure there are no chars after every single continuation character.

You can browse the source here: http://seq.cvs.sourceforge.net/seq/myseq/server/ .

There are a few old files left around but they are not used in the build. However they are around in case someone wanted to build the old original server, which doesn't even work anymore. As I have stated numerous times in other posts, all my changes are checked in. No need to get all nervous on me, I don't play that way nor do I like it when others play that way. The code is checked in *before* I even make the release, let alone push it out to SF for distribution.

You also want to make sure you pick a correct release tag. The current HEAD is equal to 1.20, but if you wanted to look at the way the code looked for 1.19.1, you can select that tag instead.

Seaxouri
04-19-2007, 07:42 PM
Here is my compiler output by placing one single space after the first continuation character in the code you have shown:


Compiling...
Spawn.cpp
c:\seq.work\myseq\server\Common.h(45) : error C2447: '{' : missing function header (old-style formal list?)
NetworkServer.cpp
c:\seq.work\myseq\server\Common.h(45) : error C2447: '{' : missing function header (old-style formal list?)
MySEQ.server.cpp
c:\seq.work\myseq\server\Common.h(45) : error C2447: '{' : missing function header (old-style formal list?)
.\MySEQ.server.cpp(34) : error C2017: illegal escape sequence


Here is the current compiler output that I see:

------ Build started: Project: MySEQ.server, Configuration: Release Win32 ------
Compiling...
stdafx.cpp
Compiling...
Spawn.cpp
NetworkServer.cpp
MySEQ.server.cpp
MemReader.cpp
Item.cpp
IniReader.cpp
Debugger.cpp
Linking...
Generating code
Finished generating code
Embedding manifest...
Build log was saved at "file://c:\seq.work\myseq\server\Release\BuildLog.htm"
MySEQ.server - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped =========


If you are having trouble with EOL chars, you can use the Cygwin tool, dos2unix. Just cd into the myseq/server folder and run 'dos2unix *.cpp *.h"'.

bobster
04-19-2007, 08:24 PM
Thank you, hit it right on the spot.
Sorry for posting in wrong forum.

Deleted old files and set my cvs tool to grab the correct HEAD and saving it it unix right of the bat did the trick. (overlooked that tab when first grabbing it ;( )


-------
Bobster
-- aspiring wannabe --

Seaxouri
04-19-2007, 10:46 PM
I just realized I could highlight your pasted code with my mouse and see the extra spaces. If you do that above, you had one extra space after the first slash, and two after the third slash. The other slashes looked ok.

bobster
04-21-2007, 08:15 PM
The code used in orig post comes from the seq cvs rep. I copy/pasted it into the post, then formatted it manually to appear like original. When I dl'd it, and converted files to Win /clr files, the blank spaces don't appear, and the code is unusable. . (Tortoise cvs grabber)
Oh, after I got the whole eol thing sorted out, I edited the client to not use radar/MQconsole, and slimmed down the spawn list. Went from 214k .exe. to 184k .exe, but mem use only went down from 21k to 19k.

Not alot, I know, and the spawn list is buggy. (invis = type(player/npc), type = description, runspeed=visible status (hidden/visible), but shows only the stuff I need atm.

I'll try to do some work on the spawn list view/ timer view and see if I can get the list properties to be selectable.

being able to build it myself hepled alot =)


________________
Bobster
-- Aspiring wannabe --

Seaxouri
04-21-2007, 11:47 PM
If you want to work on the client, I suggest pulling and updating the 1.20 tag. 1.20 is totally different from 1.19. If you want to continue on the 1.19 line instead, I cannot stop you, but I don't plan on doing anymore work down the 1.19 line.