Home of the Squeezebox™ & Transporter® network music players.
Page 3 of 3 FirstFirst 123
Results 21 to 25 of 25
  1. #21
    Senior Member
    Join Date
    Jul 2006
    Location
    St Albans, United Kingdom
    Posts
    217
    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?
    Last edited by rickwookie; 2008-01-15 at 16:44.

  2. #22
    Senior Member
    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.

  3. #23
    Senior Software Engineer - Logitech/Slim Devices
    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

  4. #24
    Senior Member
    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.

  5. #25
    Senior Software Engineer - Logitech/Slim Devices
    Join Date
    Apr 2005
    Location
    Ipswich, UK
    Posts
    1,394
    Quote Originally Posted by rickwookie View Post
    @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?
    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.

    Quote Originally Posted by rickwookie View Post
    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.
    Committed in r1462.

    Thanks,
    Richard

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •