[Slackbuilds-users] bpp-phyl build fail
David Spencer
baildon.research at googlemail.com
Sun Jan 14 23:16:11 UTC 2018
Hi Petar,
> i am planning a minor update of bppsuite and its deps. Everything
> compiles fine on Slackware64, however, compilation of bpp-phyl breaks
> on 32bit. Here's the build log:
>
> https://www.dropbox.com/s/23gel6zmv6ot91g/bpp-phyl.log?dl=0
>
> I contacted the developers and they said it is probably a compiler
> problem. Any ideas?
Ok I reproduced your problem here.
So, I tried replacing g++ with clang [1], and it failed.
The clang error messages are more helpful than the gcc error messages.
It looks like this is a coding error, *not* a compiler error. For
example:
In file included from
/tmp/SBo/bpp-phyl-2.3.2a/src/Bpp/Phyl/Io/BppOSubstitutionModelFormat.cpp:113:
/tmp/SBo/bpp-phyl-2.3.2a/src/Bpp/Phyl/Io/../Model/RegisterRatesSubstitutionModel.h:154:36:
error: virtual function 'getModelStates' has a different return type
('vector<unsigned long>') than the function it overrides (which
has return type 'vector<size_t>')
std::vector<long unsigned int> getModelStates(int i) const
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/tmp/SBo/bpp-phyl-2.3.2a/src/Bpp/Phyl/Io/../Model/AbstractWrappedModel.h:77:25:
note: overridden virtual function is here
std::vector<size_t> getModelStates(int code) const { return
getModel().getModelStates(code); }
~~~~~~~~~~~~~~~~~~~ ^
and
In file included from
/tmp/SBo/bpp-phyl-2.3.2a/src/Bpp/Phyl/Io/BppOSubstitutionModelFormat.cpp:113:
/tmp/SBo/bpp-phyl-2.3.2a/src/Bpp/Phyl/Io/../Model/RegisterRatesSubstitutionModel.h:156:14:
error: no viable conversion from returned value of type
'vector<size_t>' to function
return type 'vector<unsigned long>'
return AbstractWrappedSubstitutionModel::getModelStates(i);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib/gcc/i586-slackware-linux/5.3.0/../../../../include/c++/5.3.0/bits/stl_vector.h:318:7:
note: candidate constructor not viable: no known conversion from
'std::vector<size_t>' (aka 'vector<unsigned int>') to 'const
std::vector<unsigned long, std::allocator<unsigned long> > &' for 1st
argument
vector(const vector& __x)
^
Full log at https://pastebin.com/RXbpNcSN
Thanks for testing on 32 bit :-)
-D.
[1] 'export CXX=clang' before the cmake command
More information about the SlackBuilds-users
mailing list