Page 1 of 1

Failed build: QxOrm 1.2.5/Boost 1.53.0 on OS X 10.8

PostPosted: Wed Jun 26, 2013 9:11 pm
by Skh1002
Hi everyone,

I am building QxOrm 1.2.5 (taken from the official download page) and so far I haven't succeeded. I have Qt 5.1.0 beta and 5.0.2 both installed and working properly, I also compiled and installed Boost 1.53.0 (I did not run the entire test suite on it, but quite a few tests that I did run were passed except long double). Now, when I try building QxOrm either with qmake or with Qt Creator, I get a missing header file error:

/Volumes/Data/Serge/Developer/QxOrm/include/QxSerialize/boost/portable_binary/portable_iarchive.hpp:88: error: 'boost/spirit/home/support/detail/integer/endian.hpp' file not found
#include <boost/spirit/home/support/detail/integer/endian.hpp>
^


I have checked out the Boost include folder and indeed, this file is absent. I wonder how to rectify this problem. Is this because QxOrm needs an earlier version of Boost? I did not find any information on version compatibility other than that it can't be older than 1.38.

Thanks in advance for help.

Re: Failed build: QxOrm 1.2.5/Boost 1.53.0 on OS X 10.8

PostPosted: Thu Jun 27, 2013 7:45 am
by qxorm
Hi,

First : QxOrm works fine with boost 1.53 !

I just tested and I have the same problem with boost 1.53 : by default, this option (portable_binary) is not enabled in QxOrm.pri file (and is not officialy supported by boost).
So, you have modified QxOrm.pri file to enable this option.

My advice : if you just start working with QxOrm library, keep default parameters in QxOrm.pri file (just change boost directory + boost lib name if necessary).
Then, test all samples projects available in ./test/ directory of QxOrm package to check your dev environment...

If you really need portable_binary feature (FYI, XML serialization is portable), just change your boost version (it should work with boost 1.4X version).

I will fix this issue with boost 1.53 and portable_binary in the next release of QxOrm library...

Re: Failed build: QxOrm 1.2.5/Boost 1.53.0 on OS X 10.8

PostPosted: Thu Jun 27, 2013 9:17 pm
by Skh1002
Hi there,

I have, indeed, enabled the portable_binary option in QxOrm.pri file (since I will eventually need to support platforms with different endianness). After cleaning the project and disabling this option, I no longer have this error. In the end, after fiddling some more with the .pri file I was able to build the library and the server/client test, which seem to run correctly. Thank you for your very effective advice.

Meanwhile, I still have a question regarding QxOrm.pri serialisation module options. My Boost build contains the following libraries: libboost_serialization.a and libboost_serialization.dylib. However, when I specify their names (with or without the extension) for the QX_BOOST_LIB_SERIALIZATION_... variables I get a linker error (cannot find file for -llibboost_serialization). I tried many tricks, and in the end what seems to work is stripping the 'lib' part from the file name, so it becomes boost_serialization. This looks contrary to common logic and I wonder why it is so.

Thank you in advance.

Re: Failed build: QxOrm 1.2.5/Boost 1.53.0 on OS X 10.8

PostPosted: Fri Jun 28, 2013 7:53 am
by qxorm
I was able to build the library and the server/client test, which seem to run correctly.

Great !

and in the end what seems to work is stripping the 'lib' part from the file name

Yes, it seems that is the way to do that for UNIX platform.
I'm not an expert on UNIX systems, so maybe you could have an answer using google (or other :) ) : "unix shared library remove lib prefix"...