Build problems with boost_iostreams

543 views
Skip to first unread message

Philip Rooke

unread,
Oct 1, 2010, 7:23:34 AM10/1/10
to ledge...@googlegroups.com
I am having some trouble building Ledger at the moment.

This is on Mac OS X 10.6.4 and following the README-1ST.

$ ./acprep dependencies

ran without error. But then:

$ ./acprep --debug update

fails with the last few lines of output being:

,----
| checking if boost_regex is available... true
| checking if boost_regex w/ICU is available... true
| checking if boost_date_time is available... true
| checking if boost_filesystem is available... true
| checking if boost_iostreams is available... false
| configure: error: in `/Users/phil/contrib/ledger':
| configure: error: "Could not find boost_iostreams library (set CPPFLAGS and LDFLAGS?)"
| See `config.log' for more details
| acprep: ERROR: Execution failed: sh configure CC=/usr/bin/gcc-4.2 CPPFLAGS=-isystem /usr/local/include -isystem /opt/local/include -isystem /opt/local/include CFLAGS=-march=core2 CXX=/usr/bin/g++-4.2 CXXFLAGS=-fpch-deps -Wconversion -g -pipe LD=/usr/bin/g++-4.2 LDFLAGS=-g -L/usr/local/lib -L/opt/local/lib --with-included-gettext --enable-python --enable-pch --enable-debug
`----

I do not understand why the other Boost libraries are found. LDFLAGS and CPPFLAGS
look ok to me.

The libraries seem to be there:
,----
| $ locate libboost_iostreams
| /opt/local/lib/libboost_iostreams-mt.a
| /opt/local/lib/libboost_iostreams-mt.dylib
| /opt/local/lib/libboost_iostreams.a
| /opt/local/lib/libboost_iostreams.dylib
| /opt/local/var/macports/software/boost/1.44.0_0+icu+python26/opt/local/lib/libboost_iostreams-mt.a
| /opt/local/var/macports/software/boost/1.44.0_0+icu+python26/opt/local/lib/libboost_iostreams-mt.dylib
| /opt/local/var/macports/software/boost/1.44.0_0+icu+python26/opt/local/lib/libboost_iostreams.a
| /opt/local/var/macports/software/boost/1.44.0_0+icu+python26/opt/local/lib/libboost_iostreams.dylib
`----

Part of the config.log shows:

,----
| configure:21015: checking if boost_iostreams is available
| configure:21042: /usr/bin/g++-4.2 -o conftest -fpch-deps -Wconversion -g -pipe -isystem /usr/local/include -isystem /opt/local/include -isystem /opt/local/include -I/opt/local/include -g -L/usr/local/lib -L/opt/local/lib conftest.cpp -lboost_iostreams -lboost_system -lboost_filesystem -lboost_system -lboost_date_time -licuuc -lboost_regex -ledit -lmpfr -lgmp >&5
| /opt/local/include/boost/iostreams/device/file_descriptor.hpp: In constructor 'boost::iostreams::file_descriptor_sink::file_descriptor_sink(const Path&, std::_Ios_Openmode) [with Path = int]':
| /opt/local/include/boost/iostreams/stream.hpp:128: instantiated from 'boost::iostreams::stream<Device, Tr, Alloc>::stream(const U0&, typename boost::disable_if<boost::is_same<U0, T>, void>::type*) [with U0 = int, Device = boost::iostreams::file_descriptor_sink, Tr = std::char_traits<char>, Alloc = std::allocator<char>]'
| conftest.cpp:104: instantiated from here
| /opt/local/include/boost/iostreams/device/file_descriptor.hpp:276: error: call of overloaded 'path(const int&)' is ambiguous
| /opt/local/include/boost/iostreams/detail/path.hpp:111: note: candidates are: boost::iostreams::detail::path::path(const std::wstring&) <near match>
| /opt/local/include/boost/iostreams/detail/path.hpp:58: note: boost::iostreams::detail::path::path(const boost::iostreams::detail::path&) <near match>
| /opt/local/include/boost/iostreams/detail/path.hpp:47: note: boost::iostreams::detail::path::path(const char*) <near match>
| /opt/local/include/boost/iostreams/detail/path.hpp:44: note: boost::iostreams::detail::path::path(const std::string&) <near match>
| configure:21042: $? = 1
`----

Does anyone know what I might be doing wrong?

Thanks

Phil


Ben

unread,
Oct 9, 2010, 7:12:02 PM10/9/10
to Ledger
I built master for the first time today, and I did notice that acprep
dependencies didn't know about libboost-iostreams-dev. I had to apt-
get install libboost-iostreams-dev manually to get the compile to
work. (I'm using Ubuntu Lucid, though.)

I also noticed that acprep doesn't know about lucid yet, only hardy
and karmic. I just did a s/karmic/lucid/ in acprep to make it work
though.

Ben

Philip Rooke

unread,
Oct 10, 2010, 8:33:02 AM10/10/10
to ledge...@googlegroups.com
Ben <ben....@gmail.com> writes:

> I built master for the first time today, and I did notice that acprep
> dependencies didn't know about libboost-iostreams-dev. I had to apt-
> get install libboost-iostreams-dev manually to get the compile to
> work. (I'm using Ubuntu Lucid, though.)
>
> I also noticed that acprep doesn't know about lucid yet, only hardy
> and karmic. I just did a s/karmic/lucid/ in acprep to make it work
> though.
>
> Ben

Hmm, thanks, that's a very helpful pointer. Somewhere along the line I
have missed the fact/news that the -dev library was needed. I have been
using Macports to build the dependencies and am not sure they have -dev
ports. I will dig around.

Thanks for the help.

Phil

Reply all
Reply to author
Forward
0 new messages