Building liquibook with example(quickest and boost)

226 views
Skip to first unread message

William Shatner

unread,
Mar 5, 2018, 11:47:08 AM3/5/18
to objectcomputing_financial
Hello.

I did building liquibook. I am using ubuntu 16, boost_1_65_1 version, quickfast 1.5, xerces-c-3.2.
First, I builded xerces-c-3.2, boost_1_65, quickfast.
Next, I had build liquibook 2.0, But when building examples/depth_feed_publisher, I have some issues.

Please help me.

  

eburnside

unread,
Mar 21, 2018, 4:25:18 PM3/21/18
to objectcomputing_financial
Same issue, but using all of the Ubuntu 16.04 versions; boost (1.58), xerces (3.1), etc.

I was able to build and test quickfast no problem.

Then for liquibook, after running "/usr/lib/ace/MPC/mwc.pl -type make liquibook.mwc" I had to run the following to fix the makefiles:

# find ./ -iname "Makefile*" -exec sed -i 's/g++/g++ --std=c++11/g' {} \;

Once that was done I was getting errors linking the specific boost versions (ubuntu's boost is not built layered) so I ran this:

# export BOOST_CFG=

With that the layered boost lib linking errors went away but now I get:

[...]
In file included from /usr/include/boost/bind/mem_fn.hpp:215:0,
                 from /usr/include/boost/mem_fn.hpp:22,
                 from /usr/include/boost/bind/bind.hpp:26,
                 from /usr/include/boost/bind.hpp:22,
                 from subscriber_main.cpp:2:
/usr/include/boost/bind/mem_fn_template.hpp:299:7: note: candidate: R boost::_mfi::mf2<R, T, A1, A2>::operator()(T&, A1, A2) const [with R = bool; T = liquibook::examples::DepthFeedSubscriber; A1 = boost::shared_ptr<boost::array<unsigned char, 128ul> >&; A2 = long unsigned int]
     R operator()(T & t, A1 a1, A2 a2) const
       ^
/usr/include/boost/bind/mem_fn_template.hpp:299:7: note:   no known conversion for argument 1 from ‘liquibook::examples::DepthFeedSubscriber*’ to ‘liquibook::examples::DepthFeedSubscriber&’
Makefile.depth_feed_subscriber:95: recipe for target 'subscriber_main.o' failed

Can anyone help?

Only thing I can think of is it appears from the env.sh BOOST_CFG the devs are using g++ 6.2, whereas Ubuntu 16.04 uses g++ 5.4...

Cheers

eburnside

unread,
Mar 21, 2018, 10:02:40 PM3/21/18
to objectcomputing_financial
I figured out how to install gcc 6.3 on Ubuntu 16.04.  Unfortunately it hasn't fixed the error.  I still get the "no known conversion for argument" error.

Just playing around I also downloaded liquibook 1.1 (the 2013 release) and it compiles fine under gcc 5.4 on Ubuntu 16.04.

eburnside

unread,
Mar 22, 2018, 6:30:02 PM3/22/18
to objectcomputing_financial
I believe this is the patch you need:



@@ -18,7 +18,7 @@ namespace liquibook { namespace examples {
typedef std::deque<WorkingBufferPtr> WorkingBuffers;
typedef boost::array<unsigned char, 128> Buffer;
typedef boost::shared_ptr<Buffer> BufferPtr;
- typedef boost::function<bool (BufferPtr, size_t)> MessageHandler;
+ typedef boost::function<bool (BufferPtr&, size_t)> MessageHandler;
typedef boost::function<void ()> ResetHandler;
typedef boost::function<void (const boost::system::error_code& error,
std::size_t bytes_transferred)> SendHandler;

It compiles fine for me now on Ubuntu 16.04.  :)
Reply all
Reply to author
Forward
0 new messages