Just thought I'd chip in, since I tried building the Jive software for the first time today and managed to both get it to run and also transfer to another machine.
It was a bit fiddly, but basically I installed VC++ Express (the links in the wiki are a bit out of date, since it's now version 2008, so I updated the wiki accordingly) and managed to build it without needing to add any PlatformSDK files or anything from DirectX.
Once built the exe CAN be run on another machine but there are some VisualC++ runtime DLLs that need to also be on the target machine.
The problem was hard to pin down since the error on the target machine didn't simply say that whatever.dll could not be found, but rather ambiguously that the system was not properly configured.
I'll take a look at it a bit more tomorrow, but basically at the moment if you look at the manifest files for the release build, and compare them with the ones for the debug buid, you'll notice that the release build seems to have a dependancy on both the release and debug versions of the runtime. That must be a mistake and I'll try to fix it, but my workaround was to copy both sets of DLLs from the VC++ Redist folders (debug and release, 4 DLLs each so 8 in total) to the target machine and it worked!
There's a reference to a DirectX lib in the Release build configuration that needs to be deleted to get it to build. I'll post full details of all the tweeks tomorrow.
One small point, if the executable is built using VC++ Express (as opposed to the full paid for version), is there then any restriction to the distribution of the resulting files?
Results 21 to 25 of 25
-
2008-01-15, 16:42 #21
- Join Date
- Jul 2006
- Location
- St Albans, United Kingdom
- Posts
- 217
Last edited by rickwookie; 2008-01-15 at 16:44.
-
2008-01-16, 05:34 #22
- Join Date
- Jul 2006
- Location
- St Albans, United Kingdom
- Posts
- 217
Okay, found the problem.
First, in both the SDL_image and SDL_ttf projects, in the Solution Explorer, right-click the file 'Version.rc' and click 'Exclude From Project'. Then delete 'Version.rc' from both '\src\pkg\SDL_image-1.2.5\VisualC' and '\src\pkg\SDL_ttf-2.0.8\VisualC'. They don't appear to be needed (it builds without them) and they reference "afxres.h" which in turn references "winres.h", neither of which seem to be included with Visual C++ 2008 Express.
All of the projects (bar SDL_ttf, SDLmain and tolua++) had the _DEBUG preprocessor definition in their 'Release' build configuration. Removing it and rebuilding removes the dependency on the debug versions of the VC9 runtime DLLs.
To correctly install the release runtime DLLs on the target machine, use the 'Microsoft Visual C++ 2008 Redistributable Package (x86)' available here:
http://www.microsoft.com/downloads/d...displaylang=en
This sets up the SidebySide stuff (???) in the WinSxS folder to have the correct version DLLs that are referenced by the manifest. I think it's something to do with allowing several different versions of the same DLLs to be present on the same machine without having to have them in each apps local folder. Apparently in Windows(TM) logic, it's simpler than just using a different file name for a different version of a file. ;-)
Then just copy the contents of the built release directory ('\src\pkg\Release') to the target machine, run 'jive.exe' there and you're away. :-)
Richard.Last edited by rickwookie; 2008-01-16 at 05:44.
-
2008-01-16, 05:48 #23
- Join Date
- Apr 2005
- Location
- Ipswich, UK
- Posts
- 1,394
Excellent, those changes seem to work well. I have checked them in r1461.
Many thanks,
Richard
-
2008-01-16, 06:04 #24
- Join Date
- Jul 2006
- Location
- St Albans, United Kingdom
- Posts
- 217
Sorry I forgot the DirectX reference (after removing it yesterday I can't remember what/where it was!). I guess it's obvious since it'll throw a linker error when you try the 'Release' build anyway.
@rtitmuss: I was just about to PM you to ask if I should check the changes in, but you beat me to it. I was a bit worried anyway since I'm an SVN virgin. I'm using TortoiseSVN, if I'd just right-clicked 'SVN Commit...' would that have been the correct option?
Edit: Actually, that option shows me the diff and I can see that it's in the SDL project 'Release' configuration, Linker->Input->Additional Dependencies, remove dxguid.lib. Also I notice that Linker->General->Additional Library Directories has "C:\Program Files\Microsoft DirectX SDK (February 2007)\Lib\x86". That can probably go too.Last edited by rickwookie; 2008-01-16 at 06:10.
-
2008-01-16, 06:31 #25
- Join Date
- Apr 2005
- Location
- Ipswich, UK
- Posts
- 1,394
You won't be able to commit changes into SVN when you have checked out anonymously. Only regular contributors to the project are added to the commit list. The best way for you to submit changes is using the Create Patch option in TortoiseSVN, then post the patch here or via email.
Committed in r1462.
Thanks,
Richard