Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I use boost on uclibc linux?

Does anyone have any experience with running C++ applications that use the boost libraries on uclibc-based systems? Is it even possible? Which C++ standard library would you use? Is uclibc++ usable with boost?

like image 401
bmdhacks Avatar asked Nov 21 '08 18:11

bmdhacks


2 Answers

We use Boost together with GCC 2.95.3, libstdc++ and STLport on an ARMv4 platform running uClinux. Some parts of Boost are not compatible with GCC 2.x but the ones that are works well in our particular case. The libraries that we use the most are date_time, bind, function, tuple and thread.

Some of the libraries we had issues with were lambda, shared_pointer and format. These issues were most likely caused by our version of GCC since it has problems when you have too many includes or deep levels of template structures.

If possible I would recommend you to run the boost test suite with your particular toolchain to ensure compatibility. At the very least you could compile a native toolchain in order to ensure that your library versions are compatible.

We have not used uClibc++ because that is not what our toolchain provider recommends so I cannot comment on that particular combination.

like image 60
David Holm Avatar answered Sep 30 '22 02:09

David Holm


We are using many of the Boost libraries (thread, filesystem, signals, function, bind, any, asio, smart_ptr, tuple) on an Arcom Vulcan which is admittedly pretty powerful for an embedded device (64M RAM, 533MHz XScale). Everything works beautifully.

GCC 3.4 but we're not using uclib++ (Arcom provides a toolchain which includes libstd++).

Many embedded devices will happily run many of the Boost libraries, assuming decent compiler support. Just take care with usage. The Boost libraries raise the level of abstraction and it can be easy to use more resources than you think.

like image 27
MattyT Avatar answered Sep 30 '22 02:09

MattyT