osdir.com

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Building against arrow static library


hi Praveen,

Are /usr/include or /usr/local/include getting added to your build
paths (this could happen if you have LLVM or some other library in
your system paths)?

Unfortunately, when you're using conda libraries or an external
toolchain at all, you have to be really strict about toolchain
isolation. So here I think what's happening is that even you are
setting $BOOST_ROOT to your external toolchain location, but the C++
compiler is picking up the other Boost from your system path. You can
test this hypothesis by purging all your system Boost libraries using
apt-get purge

- Wes

On Mon, Jun 25, 2018 at 1:13 PM, Praveen Kumar <praveen@xxxxxxxxxx> wrote:
> Tried that did not help.
>
> I also tried to link in the boost libraries myself since it was not clear
> if arrow was including the transitive dependencies from the build script.
> That does not help as well.
>
> On Mon, Jun 25, 2018 at 7:55 PM, Dimitri Vorona <
> alendit@xxxxxxxxxxxxxx.invalid> wrote:
>
>> Hi,
>>
>> I'd this a similar issue some time ago, and the solution was building after
>> a clean checkout, which I interpreted as some kind of caching issue.
>>
>> Generally, I've found that starting with a clean checkout and following the
>> steps from [0] never failed for me.
>>
>> Hope that helps!
>>
>> Cheers,
>> Dimitri.
>>
>> [0]: https://arrow.apache.org/docs/python/development.html
>>
>> On Mon, Jun 25, 2018 at 4:17 PM Praveen Kumar <praveen@xxxxxxxxxx> wrote:
>>
>> > Hi Folks,
>> >
>> > I am a newbie to cpp build/packaging. I need some help on building
>> against
>> > the arrow static library.
>> >
>> > I tried the following
>> >
>> > 1. Using both arrow and boost from conda (latest versions 0.9 and 1.67).
>> > 2. Building arrow from source and boost from conda.
>> > 3. Built both from source.
>> >
>> > But i am getting this error - with all combinations
>> >
>> > 1. boost/regex/v4/regex_match.hpp:50: undefined reference to
>> > `boost::re_detail_106700::perl_matcher<__gnu_cxx::__normal_iterator<char
>> > const*, std::string>,
>> > std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char
>> const*,
>> > std::string> > >, boost::regex_traits<char,
>> boost::cpp_regex_traits<char> >
>> > >::match()'
>> >
>> > 2. boost/regex/v4/basic_regex.hpp:381: undefined reference to
>> > `boost::basic_regex<char, boost::regex_traits<char,
>> > boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*,
>> > unsigned int)'
>> >
>> > 3. boost/regex/v4/perl_matcher.hpp:386: undefined reference to
>> > `boost::re_detail_106700::perl_matcher<__gnu_cxx::__normal_iterator<char
>> > const*, std::string>,
>> > std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char
>> const*,
>> > std::string> > >, boost::regex_traits<char,
>> boost::cpp_regex_traits<char> >
>> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char,
>> > boost::cpp_regex_traits<char> > > const&,
>> > boost::regex_constants::_match_flags)'
>> >
>> > I am including the boost headers from same path that arrow was built
>> with.
>> > Surprisingly it works in travis(ubuntu trusty) and in mac but fails on a
>> > stand alone Ubuntu machine.
>> >
>> > Googling around some of the root causes seem to be building and linking
>> > with different versions of boost/compiler differences. Both do not apply
>> > here.
>> >
>> > Has anyone faced this before?
>> >
>> > Thx.
>> >
>>