Under ubuntu, How to purge default boost-v1.58 then switch to the built version without any damages?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Under ubuntu, How to purge default boost-v1.58 then switch to the built version without any damages?

Boost - Users mailing list

Under ubuntu 16,04 I have built latest boost 1.65.1 like this:

	./bootstrap.sh --prefix=/usr/local
	./b2
	sudo ./b2 install
	sudo ldconfig 

then when building something against boost,I got these errors:

/usr/local/include/boost/serialization/access.hpp: In instantiation of ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::text_oarchive; T = std::array<std::__cxx11::basic_string<char>, 10ul>]’:
/usr/local/include/boost/serialization/serialization.hpp:68:22:   required from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::text_oarchive; T = std::array<std::__cxx11::basic_string<char>, 10ul>]’
/usr/local/include/boost/serialization/serialization.hpp:126:14:   required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::archive::text_oarchive; T = std::array<std::__cxx11::basic_string<char>, 10ul>]’
/usr/local/include/boost/archive/detail/oserializer.hpp:150:40:   required from ‘void boost::archive::detail::oserializer<Archive, T>::save_object_data(boost::archive::detail::basic_oarchive&, const void*) const [with Archive = boost::archive::text_oarchive; T = std::array<std::__cxx11::basic_string<char>, 10ul>]’
/usr/local/include/boost/archive/detail/oserializer.hpp:103:1:   required from ‘class boost::archive::detail::oserializer<boost::archive::text_oarchive, std::array<std::__cxx11::basic_string<char>, 10ul> >’
/usr/local/include/boost/archive/detail/oserializer.hpp:255:13:   required from ‘static void boost::archive::detail::save_non_pointer_type<Archive>::save_standard::invoke(Archive&, const T&) [with T = std::array<std::__cxx11::basic_string<char>, 10ul>; Archive = boost::archive::text_oarchive]’
/usr/local/include/boost/archive/detail/oserializer.hpp:310:22:   required from ‘static void boost::archive::detail::save_non_pointer_type<Archive>::invoke(Archive&, const T&) [with T = std::array<std::__cxx11::basic_string<char>, 10ul>; Archive = boost::archive::text_oarchive]’
/usr/local/include/boost/archive/detail/oserializer.hpp:534:18:   required from ‘void boost::archive::save(Archive&, T&) [with Archive = boost::archive::text_oarchive; T = const std::array<std::__cxx11::basic_string<char>, 10ul>]’
/usr/local/include/boost/archive/detail/common_oarchive.hpp:70:22:   required from ‘void boost::archive::detail::common_oarchive<Archive>::save_override(T&) [with T = const std::array<std::__cxx11::basic_string<char>, 10ul>; Archive = boost::archive::text_oarchive]’
/usr/local/include/boost/archive/basic_text_oarchive.hpp:83:9:   required from ‘void boost::archive::basic_text_oarchive<Archive>::save_override(T&) [with T = const std::array<std::__cxx11::basic_string<char>, 10ul>; Archive = boost::archive::text_oarchive]’
/usr/local/include/boost/archive/detail/interface_oarchive.hpp:70:9:   required from ‘Archive& boost::archive::detail::interface_oarchive<Archive>::operator<<(const T&) [with T = std::array<std::__cxx11::basic_string<char>, 10ul>; Archive = boost::archive::text_oarchive]’
examples/user_code/openpose_recognition.cpp:867:89:   required from here
/usr/local/include/boost/serialization/access.hpp:116:9: error: ‘struct std::array<std::__cxx11::basic_string<char>, 10ul>’ has no member named ‘serialize’
         t.serialize(ar, file_version);
         ^
compilation terminated due to -Wfatal-errors.
Makefile:478: die Regel für Ziel „.build_release/examples/user_code/openpose_recognition.o“ scheiterte
make: *** [.build_release/examples/user_code/openpose_recognition.o] Fehler 1
make: *** Auf noch nicht beendete Prozesse wird gewartet …

I think ubuntu is still use default boost that installed by apt-get,so I tried to purge it 

	sudo apt-get purge libboost1.58-dev

the output asks me to remove a lot of stuffs that depend on libboost1.58-dev like these:

Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
  docutils-common fltk1.3-doc fluid gazebo7 gazebo7-common gazebo7-plugin-base gir1.2-gtk-2.0 libapr1 libapr1-dev
  libaprutil1 libaprutil1-dev libarmadillo6 libassimp-dev libassimp3v5 libboost-atomic1.58.0 libboost-chrono1.58.0
  libboost-context1.58.0 libboost-coroutine1.58.0 libboost-graph-parallel1.58.0 libboost-graph1.58.0
  libboost-locale1.58.0 libboost-log1.58.0 libboost-math1.58.0 libboost-mpi-python1.58.0 libboost-mpi1.58.0
  libboost-python1.58.0 libboost-random1.58.0 libboost-regex1.58.0 libboost-signals1.58.0 libboost-test1.58.0
  libboost-thread1.58.0 libboost-timer1.58.0 libboost-tools-dev libboost-wave1.58.0 libboost1.58-tools-dev
  libbullet-dev libbulletcollision2.83.6 libbulletdynamics2.83.6 libbulletsoftbody2.83.6 libbz2-dev
  libcollada-dom2.4-dp-dev libcollada-dom2.4-dp0 libconsole-bridge-dev libconsole-bridge0.2v5 libcurl4-openssl-dev
  libdap-dev libdap17v5 libdapclient6v5 libdapserver7v5 libepsilon1 libflann-dev libflann1.8 libfltk-cairo1.3
  libfltk-forms1.3 libfltk-images1.3 libfltk1.3-dev libfreeimage-dev libfreeimage3 libfreexl1 libgazebo7 libgdal-dev
  libgdal1i libgeos-3.5.0 libgeos-c1v5 libgeos-dev libgl2ps-dev libgtest-dev libgtk2.0-dev libgts-0.7-5 libgts-bin
  libgts-dev libhdf4-0-alt libhdf4-alt-dev libhdf5-mpi-dev libignition-math2 libignition-math2-dev libinput-dev
  libjs-jquery-ui libjsoncpp-dev libjxr0 libkmlbase1 libkmldom1 libkmlengine1 libldap2-dev liblinearmath2.83.6
  liblog4cxx-dev liblog4cxx10-dev liblog4cxx10v5 liblz4-dev libminizip1 libnetcdf-c++4 libnetcdf-cxx-legacy-dev
  libnetcdf-dev libnetcdf11 libogdi3.2 libogre-1.9.0v5 libopenni-dev libopenni-sensor-pointclouds0 libopenni0
.......

,and it may cause a lot of damage if continuing,so the question is

How to purge default boost-v1.58 then switch to the built version without any damages?
_______________________________________________
Boost-users mailing list
[hidden email]
https://lists.boost.org/mailman/listinfo.cgi/boost-users
Reply | Threaded
Open this post in threaded view
|

Re: Under ubuntu, How to purge default boost-v1.58 then switch to the built version without any damages?

Boost - Users mailing list
On 6/11/2017 04:51, Alex Luya wrote:

> Under ubuntu 16,04 I have built latest boost 1.65.1 like this:
>
> ./bootstrap.sh --prefix=/usr/local
> ./b2
> sudo ./b2 install
> sudo ldconfig
>
> then when building something against boost,I got these errors:
>
> /usr/local/include/boost/serialization/access.hpp: In instantiation of ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::text_oarchive; T = std::array<std::__cxx11::basic_string<char>, 10ul>]’:
[...]

> /usr/local/include/boost/archive/basic_text_oarchive.hpp:83:9:   required from ‘void boost::archive::basic_text_oarchive<Archive>::save_override(T&) [with T = const std::array<std::__cxx11::basic_string<char>, 10ul>; Archive = boost::archive::text_oarchive]’
> /usr/local/include/boost/archive/detail/interface_oarchive.hpp:70:9:   required from ‘Archive& boost::archive::detail::interface_oarchive<Archive>::operator<<(const T&) [with T = std::array<std::__cxx11::basic_string<char>, 10ul>; Archive = boost::archive::text_oarchive]’
> examples/user_code/openpose_recognition.cpp:867:89:   required from here
> /usr/local/include/boost/serialization/access.hpp:116:9: error: ‘struct std::array<std::__cxx11::basic_string<char>, 10ul>’ has no member named ‘serialize’
>          t.serialize(ar, file_version);
>          ^
> compilation terminated due to -Wfatal-errors.
> Makefile:478: die Regel für Ziel „.build_release/examples/user_code/openpose_recognition.o“ scheiterte
> make: *** [.build_release/examples/user_code/openpose_recognition.o] Fehler 1
> make: *** Auf noch nicht beendete Prozesse wird gewartet …
>
> I think ubuntu is still use default boost that installed by apt-get,

That is not your problem, since you can see in the output that it is
using Boost from /usr/local/include, not /usr/include (which is where
the system Boost is stored).

Having said that, you may need to double-check that your library path
also uses /usr/local/lib before /usr/lib otherwise you may experience
other problems later on.

Another thing to verify is whether you are compiling your application
with C++11 or higher options (which the compiler output suggests is the
case).  If so, you should specify the same options when building Boost.

Otherwise, look closely at
examples/user_code/openpose_recognition.cpp:867 and see if the code is
correct.

> so I tried to purge it
>
> sudo apt-get purge libboost1.58-dev

That is never a good idea.  You can't remove the system Boost libraries
without removing or rebuilding every other system package that depends
on it, which will most likely break your system.

> How to purge default boost-v1.58 then switch to the built version
> without any damages?
You can't.

_______________________________________________
Boost-users mailing list
[hidden email]
https://lists.boost.org/mailman/listinfo.cgi/boost-users
Reply | Threaded
Open this post in threaded view
|

Re: Under ubuntu, How to purge default boost-v1.58 then switch to the built version without any damages?

Boost - Users mailing list
On Monday, November 6, 2017 6:09:59 PM CST Gavin Lambert via Boost-users
wrote:
> On 6/11/2017 04:51, Alex Luya wrote:

> > so I tried to purge it
> >
> > sudo apt-get purge libboost1.58-dev
>
> That is never a good idea.  You can't remove the system Boost libraries
> without removing or rebuilding every other system package that depends
> on it, which will most likely break your system.

What Alex is doing is fine.  You CAN safely remove the DEVELOPMENT libraries
-- which is what Alex would (partly) accomplish by "apt-get purge
libboost1.58-dev".  

Alex: you likely have other remaining boost development libraries -- each
library that comes with a .so file will have a corresponding -dev package.  
You can see what remains on your system with a command such as:

dpkg --list|grep boost.*dev

You can purge all of these.

-Steve

_______________________________________________
Boost-users mailing list
[hidden email]
https://lists.boost.org/mailman/listinfo.cgi/boost-users

signature.asc (849 bytes) Download Attachment