Building Quickfast 1.3

76 views
Skip to first unread message

Dieter Mayer

unread,
Aug 18, 2011, 5:29:09 AM8/18/11
to quickfast_users
Hi,

I am trying to get Quickfast running on Solaris 10 (Sparc) and Red Hat
5.6. On Solaris it was a nightmare to build boost and quickfast. On
Linux boost 1.47.0 was easy. Problems under Linux:

[dieter@Zeus quickfast_1_3]$ make
make[1]: Entering directory `/home/dieter/OPENSOURCE/QUICKFAST/
quickfast_1_3/src'
g++ -fPIC -O -O3 -DUSING_PCH -D_REENTRANT -I"/home/dieter/local/
boost-1.47.0/include/boost-1_47" -I"/home/dieter/local/boost-1.47.0/."
-I"../src" -I"/home/dieter/local/xerces-3.1.1/include" -I"/home/dieter/
local/boost-1.47.0/include" -c -DQUICKFAST_BUILD_DLL -o "Application/
DNDecoderConnectionImpl.o" Application/DNDecoderConnectionImpl.cpp
../src/Communication/LinkedBuffer.h:418: Fehler:
»condition_variable« in Namensbereich »boost« bezeichnet keinen
Typ
../src/Communication/LinkedBuffer.h: In member function »bool
QuickFAST::Communication::SingleServerBufferQueue::push(QuickFAST::Communication::LinkedBuffer*,
boost::detail::thread::scoped_lock<boost::mutex>&)«:
../src/Communication/LinkedBuffer.h:293: Fehler: »condition_« wurde
in diesem Gültigkeitsbereich nicht definiert
../src/Communication/LinkedBuffer.h: In member function »bool
QuickFAST::Communication::SingleServerBufferQueue::refresh(boost::detail::thread::scoped_lock<boost::mutex>&,
bool)«:
../src/Communication/LinkedBuffer.h:379: Fehler: »condition_« wurde
in diesem Gültigkeitsbereich nicht definiert
make[1]: *** [Application/DNDecoderConnectionImpl.o] Fehler 1
make[1]: Leaving directory `/home/dieter/OPENSOURCE/QUICKFAST/
quickfast_1_3/src'
make: *** [QuickFAST] Fehler 2
[dieter@Zeus quickfast_1_3]$

my setup.sh:
# Command file to set QuickFAST environment
# QuickFAST depends on MPC V 3.6 or later. (http://www.ociweb.com/
products/mpc)
# QuickFAST depends on BOOST V 1.36.0 or later. (http://
www.boost.org/)
# QuickFAST depends on Xerces V3.0 or later. (http://xerces.apache.org/
xerces-c/)
# Customize this file by setting variables to suit your environment
export QUICKFAST_ROOT=`pwd`

export MPC_ROOT=$HOME/OPENSOURCE/MPC/MPC_3_9_0

export BOOST_ROOT=$HOME/local/boost-1.47.0
export BOOST_ROOT_LIB=$BOOST_ROOT/lib
export BOOST_CFG=-gcc41-mt
export BOOST_VERSION=boost-1_47
export XERCES_ROOT=$HOME/local/xerces-3.1.1
export XERCES_LIBPATH=$XERCES_ROOT/lib
export XERCES_LIBNAME=xerces-c-3.1
export XERCES_INCLUDE=$XERCES_ROOT/include


export PATH=$QUICKFAST_ROOT/bin:$MPC_ROOT:$PATH
export LD_LIBRARY_PATH=$XERCES_LIBPATH:$QUICKFAST_ROOT/lib:
$BOOST_ROOT_LIB:$LD_LIBRARY_PATH

Compiler gcc-4.1.2

any ideas ?

thanks

Dieter

Dale Wilson

unread,
Aug 18, 2011, 10:59:37 AM8/18/11
to quickfa...@googlegroups.com
Hi Deiter,

Thanks for using QuickFAST. Some replies are below:

On 8/18/2011 4:29 AM, Dieter Mayer wrote:
> Hi,
>
> I am trying to get Quickfast running on Solaris 10 (Sparc) and Red Hat
> 5.6. On Solaris it was a nightmare to build boost and quickfast.

We do not currently build and test QuickFAST on Solaris although we have
Solaris machines in our build farm (I'm not sure we have a Sparc running
Solaris 10, though.) That means unless you want to sponsor a regular
Solaris build you will have to handle the details yourself.

That being said, one of the design goals of QuickFAST was to make it
platform-agnostic so there is a good chance it can be made to work
without a huge effort.

> On
> Linux boost 1.47.0 was easy. Problems under Linux:
>
> [dieter@Zeus quickfast_1_3]$ make
> make[1]: Entering directory `/home/dieter/OPENSOURCE/QUICKFAST/
> quickfast_1_3/src'
> g++ -fPIC -O -O3 -DUSING_PCH -D_REENTRANT -I"/home/dieter/local/
> boost-1.47.0/include/boost-1_47" -I"/home/dieter/local/boost-1.47.0/."
> -I"../src" -I"/home/dieter/local/xerces-3.1.1/include" -I"/home/dieter/
> local/boost-1.47.0/include" -c -DQUICKFAST_BUILD_DLL -o "Application/
> DNDecoderConnectionImpl.o" Application/DNDecoderConnectionImpl.cpp
> ../src/Communication/LinkedBuffer.h:418: Fehler:

> »condition_variable« in Namensbereich »boost« bezeichnet keinen
> Typ
> ../src/Communication/LinkedBuffer.h: In member function »bool


> QuickFAST::Communication::SingleServerBufferQueue::push(QuickFAST::Communication::LinkedBuffer*,

> boost::detail::thread::scoped_lock<boost::mutex>&)«:
> ../src/Communication/LinkedBuffer.h:293: Fehler: »condition_« wurde
> in diesem Gültigkeitsbereich nicht definiert
> ../src/Communication/LinkedBuffer.h: In member function »bool


> QuickFAST::Communication::SingleServerBufferQueue::refresh(boost::detail::thread::scoped_lock<boost::mutex>&,

> bool)«:
> ../src/Communication/LinkedBuffer.h:379: Fehler: »condition_« wurde
> in diesem Gültigkeitsbereich nicht definiert

Assuming I am interpreting the German messages correctly (grin) the
compiler is not finding boost::condition_variable.

I notice that you are using QuickFAST 1.3. That is the latest
packaged release, but there have been quite a few changes since then
including some related to the boost changes. I'd recommend going with
the tip of the SVN repository (which I keep as stable as possible.)

It takes me about four hours to create, test, and package a new release
and I haven't found anyone who is willing to sponsor a 1.4 release.
Since I am deeply involved in some ongoing projects I probably won't
produce a new packaged release until someone can sponsor it.

If you want to stay with V1.3 you may need to add additional includes
to Common/QuickFASTPch.h to find the appropriate boost headers.
Alternatively, there is a command line option to the boost build that
reverts to the old data structures (sorry, I don't remember the details
right now.)

Dale


>
> thanks
>
> Dieter
>


--
Dale Wilson
Principal Software Engineer
Object Computing, Inc.

Dieter Mayer

unread,
Aug 18, 2011, 12:07:22 PM8/18/11
to quickfast_users
Dale,

Sorry for the German Error Messages. At the moment we have Solaris 10
Sparc boxes in the proximity housing of the Deutsche Börse. Our target
plattform is Red Hat Linux. I have tried trunk on Linux too, but
with no success.
I keep you informed.

thanks

Dieter
> > QuickFAST::Communication::SingleServerBufferQueue::push(QuickFAST::Communic ation::LinkedBuffer*,
> > boost::detail::thread::scoped_lock<boost::mutex>&)«:
> > ../src/Communication/LinkedBuffer.h:293: Fehler: »condition_« wurde
> > in diesem Gültigkeitsbereich nicht definiert
> > ../src/Communication/LinkedBuffer.h: In member function »bool
> > QuickFAST::Communication::SingleServerBufferQueue::refresh(boost::detail::t hread::scoped_lock<boost::mutex>&,
Reply all
Reply to author
Forward
0 new messages