i just downloaded the latest Arianne source, and am trying to build it. I installed, mySQL, SDL and SDL_net, etc...
Anyway, when you attempt to build using the VisualC workspaces, it expects some of the static stub libraries for the various product DLLs (i.e. SDL, SDL_net, etc) to be located at a specific relative location to the project.
By copying over the .lib files from the respective locations where I had installed the other products into the right place under the Arianne project it worked.
But, it shouldn't really have this specific dependency on where the .lib is located. I've added the correct directories to the VisualC++ options for finding libraries. So, it should, ideally just go find them there instead of hardcoding a specific location.
Just a few thoughts :-)
You seem to have CSS turned off.
Please don't fill out this field.
also, another note about the interaction with mySQL. Once I got past the library issue above, I was able to successfully build the ascii2map, Common files, libArianneClient files, and TestTP files.
However, when trying to then build the arianneServer project, I kept getting errors inside the mySQL headers. The problem was that the type my_socket is used, which #ifdef _WIN32 is basically, just a SOCKET.
For some reason, _WIN32 is not defined. I think this will just take some fiddling, but wanted you to be aware of it. Making sure that _WIN32 is defined (when doing a Win32 build of course) fixes this build problem.
Hopefully this helps... :-)
Miguel Angel Blanch Lardin
umm, know I remember to have need to do something similar to this.
Hopefully all this won't be needed once we release binaries.
But as you see this is a MySQL problem, I think I fixed it by modifing the MySQL headers.
ok, I was wrong immediately above... the error is not because of the _WIN32 symbol.....
The problem is that the mySQL headers use the SOCKET type, and its not defined when they attempt to use it.
SOCKET is defined in winsock.h as u_int. So, for some reason winsock.h isn't being included before the mySQL header gets parsed... hmmm...
IMO the header should be included on the MySQL header that is the one that is requiering it, don't you think so?
Well, I added
to the top of the following files:
this fixed the compile errors. to do this cleanly and make it applicable on other platforms, i guess this should be enclosed in an #ifdef so it only occurs on windows.
or, maybe I'm totally missing something here.... anyway, adding these lines got it to build.
fyi, when building the server it appears to have to locate the mySQL libs in:
again, I'm guessing this should just use the VC search path for libs defined in the options, but I'm not sure how to get it to do this.
Go to the Workspace browser (left pane in VC++) and expand the AccountManager project. You should see a Libraries sub-folder. Expand that. Right click on mysql.lib and select Properties. Then change 'Persist As' to point wherever your mysql.lib file really is. That should do the trick. Worked for me anyway.....
I was able to build everything successfully after doing the tweaking described above.
I then ran everything using the provided bin directory (where the stuff is already built) by just copying the necessary DLLs right into the directory.
The server and client both seemed to run well. I wasn't sure what to test, but they seemed to be talking back and forth. I tried starting a bunch of clients, but it appears to only allow a single client. I was using the same username and password for each attempt though, so perhaps thats the problem.
Guido de Jong
Thanks for the feedback! I'm sure Miguel will get back to you on the build problems (he's the VC guy, I'm just the linux guy :-) ).
As you noticed it is not possible to login twice using the same account. Once you try to login the 2nd time, the 1st is automatically logged out. This is intended behavior.
As for what to test:
- try to login using different accounts (possibly both password based and RSA based)
- try what happens if you send bogus logins
- for those with more machines: try setting up the server on one and the client on another
- you could try to change the .arianne files and thereby change the "game" (more difficult)
Also it is possible to copy the DLL files to the Windows directory.
Yes, that is the problem.
We decided to do this to disallow two connections to use the same player. You should try to connect to server a few players, it will work ok :)
By now the only known problems is when you type a bad value in the server, for example, you say disconnect 15 and there is no player on connection 15.
Well, what other approach is suggested?
We could enforce people to install all the libraries on the VisualC directory space.
I will fix the libraries problem and will add the paths, much like the Headers thing.
VC is really not as goog as old unix on these things. :-(
"Well, what other approach is suggested?
We could enforce people to install all the libraries on the VisualC directory space. I will fix the libraries problem and will add the paths, much like the Headers thing. VC is really not as goog as old unix on these things. :-("
- VC maintains a list of include directories, and library directories under its Options. Ideally, if you want to link with libCoolStuff.lib, the project should just depend on libCoolStuff.lib, regardless of where its located. Then, for someone to build, they have to install it (somewhere on their system), add it to the library search path in the VC options, and it should work.
- The errors I was getting seem to indicate that somehow the Arianne VC projects have specific paths embedded in them, as opposed to just library names. I'm not exactly sure how to fix this. I remember having a similar problem before, but can't remember the remedy. The idea is to just specify the library, not where its located.
"But as you see this is a MySQL problem, I think I fixed it by modifing the MySQL headers"
"But as you see this is a MySQL problem, I think I fixed it by modifing the MySQL headers."
- I agree. If mySQL is using SOCKET, they should be including winsock.h if building on a windows platform. It does sound like a mySQL issue, not an Arianne issue.
- However, if you scan the mySQL header files, you'll notice they do have a #include <winsock.h> in there. But its inside some #ifdefs. So, perhaps the Arianne project doesn't have one of these symbols defined that it needs to??
"Also it is possible to copy the DLL files to the Windows directory."
- yea, I know... I just hate putting stuff in there :-)
"We decided to do this to disallow two connections to use the same player. You should try to connect to server a few players, it will work ok :)"
- yea, that does make sense. if you logged on multiple times with the same char you'd be somewhat schizo, I guess :-)
- btw, does anyone know how to respond to a specific post in these forums??? Also, I end up having to change the subject line or it won't let me post. I'm sure I must be missing something...
ok, VC lib problem. I will work on fixing it.
MySQL problem, well, could you tell me what the defines are? We could define them on Arianne.
Umm these forums are a bit "stupid"... I really prefer Mailing list, it is simpler.
Hi im tried to compile arianne since a week but have problems with those hardcoded paths and VC looking for libs.
Im anewbie but i like to fix this little thing if you let me do some little changes to the dsp of some vc projects thanks a lot.
Miguel Angel Blanch Lardin
Sure, What are the suggestions?
Send then as a Patch
I have submitted the patch and i waiting for your response.
Please tell what you think.
PD:Is any possibilities that these files in the patch would be commited in cvs tree?