Friday 22 April 2011

Developer Journal 76 - On Boost Serialization

Building BJam

I built BJam by going to the directory,

  • E:\agi\dep\boost_1_45_0\tools\build\v2\engine\src

and calling,

  • build.bat gcc

I would not have thought that BJam was there. In Boost 1.44, BJam was in,

  • E:\agi\dep\boost_1_44_0\tools\jam\src

Grr.



Building Boost Serialization, Thread, Date and Time

Attempting to build Boost Serialization debug, shared library with multi-threading.

  • bjam toolset=gcc --with-serialization variant=debug link=shared threading=multi stage

Success?

Attempting to build Boost Thread debug, shared library with multi-threading.

  • bjam toolset=gcc --with-thread variant=debug link=shared threading=multi stage

Success?

Attempting to build Boost Date and Time debug, shared library with multi-threading.

  • bjam toolset=gcc --with-date_time variant=debug link=shared threading=multi stage

Success?



Building Release Versions of Boost Serialization, Thread, Date and Time

My simulation compiled but at run time it asked for the release, multi-threaded version of the thread library.

  • bjam toolset=gcc --with-thread variant=release link=shared threading=multi stage

I actually misread. It was asking for the release, dynamic, multi-threaded version of the thread library from Boost 1.44.

Damn. I think that Ogre 1.7.2 wants the Boost 1.44 Thread library, libboost_thread-mgw45-mt-1_44.dll.

I suspect that it wants the Boost 1.44 Date and Time library as well. Should I compile Ogre myself or use a combination of Boost 1.44 and 1.45 libraries?

No luck. I tried using a combination of the Boost 1.44 Thread, Data and Time libraries that came with Ogre with my Boost 1.45 Serialization library but the simulation crashed on start up.

No wonder, I was using the Boost 1.45 Thread, Data and Time header files and then the Boost 1.44 Thread, Data and Time dynamic link multi-threaded libraries.



Upgrading to a New Version is Dangerous

The latest version of Ogre is still 1.7.2. Looks like I'm going to have to build Ogre from source.

Sigh. I upgrade from Boost 1.42 to Boost 1.44 to work with Ogre 1.7.2.

However, Boost 1.44 Serialization dynamic link with multi-threading does not build. So I upgrade to Boost 1.45.

However, Boost 1.45 does not work with pre-compiled Ogre 1.7.2.

Hence, I may have to build Ogre from source.



Building Ogre from Source

I downloaded the source code for Ogre 1.7.2 but I have no idea how to download the dependencies.


I've been using MinGW 4.5 from Twighlight Dragon Media but the Ogre documentation says I need to switch to MinGW 4.5 from MinGW. I can't even remember how to download MinGW. Yea! Automated installer. I stuck with the pre-packaged catalog. I selected to also install the c++ compiler.


I downloaded a program that looked at my copy of Windows and generated a code that I had to submit to Microsoft before I proceed with the download. The code I had was 6JMGB7WV. I downloaded the February 2010 DirectX SDK.


I downloaded the Ogre dependencies but they were for gcc 4.4.


I still don't know how to download the Ogre MinGW dependency files. Aah! There's a little button called "get source"! That took me much too long to find.




I tested MinGW 4.5 from MinGW and built the simulation fine.

The next step will be compiling the Ogre dependencies and Boost 1.45.

To get CMake to generate MinGW Makefiles,

  • cmake -G "MinGW Makefiles"



RELATED

No comments:

Post a Comment