Могу ли я использовать boost на uclibc linux? - PullRequest
7 голосов
/ 21 ноября 2008

Есть ли у кого-нибудь опыт работы с приложениями C ++, которые используют библиотеки boost в системах на основе uclibc? Это вообще возможно? Какую стандартную библиотеку C ++ вы бы использовали? Можно ли использовать uclibc ++ с boost?

Ответы [ 5 ]

2 голосов
/ 25 февраля 2009

Мы используем Boost вместе с GCC 2.95.3, libstdc ++ и STLport на платформе ARMv4 под управлением uClinux. Некоторые части Boost несовместимы с GCC 2.x, но те, которые хорошо работают в нашем конкретном случае. Наиболее используемые библиотеки: date_time , bind , function , tuple и thread .

Некоторые библиотеки, с которыми у нас были проблемы, были lambda , shared_pointer и format . Эти проблемы, скорее всего, были вызваны нашей версией GCC, так как она имеет проблемы, когда у вас слишком много включений или глубоких уровней структур шаблонов.

Если это возможно, я бы порекомендовал вам запустить пакет буст-тестов с вашим конкретным набором инструментов для обеспечения совместимости. По крайней мере, вы можете скомпилировать нативный набор инструментов для обеспечения совместимости версий вашей библиотеки.

Мы не использовали uClibc ++, потому что это не то, что рекомендует наш провайдер цепочек инструментов, поэтому я не могу комментировать эту конкретную комбинацию.

2 голосов
/ 22 ноября 2008

Мы используем многие из библиотек Boost (поток, файловая система, сигналы, функции, связывание, любые, asio, smart_ptr, tuple) на Arcom Vulcan , который, по общему признанию, довольно мощный для встроенного устройства 64 МБ ОЗУ, 533 МГц XScale). Все работает красиво.

GCC 3.4, но мы не используем uclib ++ (Arcom предоставляет набор инструментов, который включает libstd ++).

Многие встраиваемые устройства будут успешно запускать многие из библиотек Boost, при условии достойной поддержки компилятора. Просто позаботьтесь об использовании. Библиотеки Boost повышают уровень абстракции, и может быть легко использовать больше ресурсов, чем вы думаете.

1 голос
/ 20 февраля 2009

Я погуглил "uclibc stlport". Кажется, есть как минимум несколько версий uclibc, для которых можно скомпилировать stlport (см. this ). Учитывая это, я бы сказал, что Boost находится всего в нескольких шагах от компиляции. Я прочитал сообщение Дэвида Абрахамса (который является активным членом сообщества Boost), в котором говорится, что Boost не зависит напрямую от используемого libc. Но некоторые библиотеки все еще могут вызывать проблемы, например Boost.Python, поскольку это зависит от чего-то другого (Python в моем примере), которое может быть трудно компилировать с помощью uclibc.

Надеюсь, это поможет

0 голосов
/ 25 января 2011

Да, вы можете использовать boost с uclibc.
Я пробовал это с boost 1.45 & uclibc на ARM9260

  1. Используйте свежие OpenEmbedded
  2. Настройте его на использование Angstrom
  3. Настройте Angstrom для использования uclibc
  4. make boost - bitbake boost
0 голосов
/ 21 ноября 2008

Я не пробовал, но я не знаю ничего о uclibc, которое бы мешало работе Boost.

Попробуйте и посмотрите, что произойдет, я бы сказал.

...