0

I am working on a project using git. I have a branch the has been compiling fine but when I tried building it from scratch I started getting this strange error at compile-time:

In file included from ~/path/to/boost/install/include/boost/serialization/set.hpp:26:0,
~/path/to/boost/install/include/boost/serialization/detail/stack_constructor.hpp: In constructor 'boost::serialization::detail::stack_construct<Archive, T>::stack_construct(Archive&, unsigned int)':
~/path/to/boost/install/include/boost/serialization/detail/stack_constructor.hpp:54:9: error: 'load_construct_data_adl' is not a member of 'boost::serialization'
     boost::serialization::load_construct_data_adl(
     ^

Any ideas?

ad_ad
  • 375
  • 3
  • 14
  • Which boost version are you using? – Drew Dormann Jul 17 '15 at 18:07
  • boost version 1.57.0 but I tried 1.58.0 and the same error pops up – ad_ad Jul 17 '15 at 18:57
  • erm. This is a build problem. Likely the error was introduced some time earlier but you only noticed after you triggered a full rebuild. Do you happen to have the git repo accessible? – sehe Jul 17 '15 at 20:28
  • you mean of the project I'm working on? - sure it is https://bitbucket.org/mituq/muq – ad_ad Jul 17 '15 at 20:30
  • @ad_ad oh wow. That build tries to download boost from where it isn't found. I faked a webserver to get around that. In case you want to follow: https://www.livecoding.tv/sehe/ – sehe Jul 17 '15 at 21:05
  • @sehe yea ... the cmake is having some trouble ... if you copy and past the link the download works fine. I think something is wrong with sourceforge or something ... my coworker is on it lol – ad_ad Jul 17 '15 at 21:09

1 Answers1

0

I'm going to venture the guess that the system-packaged boost header files are found in addition to the ones part of the MUQ build configuration.

MUQ downloads, builds and installs boost (into /usr/local/muq_external/include/boost it seems), but if your system's packages installed boost headers of a conflicting version directly into /usr/include then these might be found before the muq_external versions.

I'd make sure there are no system-wide dev file for boost installed. Alternatively you could look at which files are failing compilation, and see what include paths apply.

If you can, try to produce preprocessor output for the failing translation unit. The comments will show exactly which version of the headers are included (from) where.

sehe
  • 374,641
  • 47
  • 450
  • 633
  • That was my first guess as well but there are no other copies of boost on my machine (this machine basically exists exclusively for me to work on MUQ). Yes, MUQ building/installs boost but only if it can't find another working installation. – ad_ad Jul 19 '15 at 17:54