2008-11-21 2 views
7

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

+0

Есть дружелюбные руководства дошедших до нас. Просто, знаешь, говоришь. В любом случае, я бы поставил под вопрос использование boost на встроенной системе ... кажется, много накладных расходов на встроенную работу. –

+0

Я оцениваю повышение для приложения enterpriseisey для систем серверного класса, но есть некоторые преимущества для масштабирования до встроенных систем. Это не чисто встроенное, или я бы использовал что-то еще, но boost приносит много к таблице, если вы можете качать его. – bmdhacks

+0

У Boost есть много библиотек, я уверен, что некоторые из них будут работать, и некоторые из них не будут работать. О каких деталях мы говорим? –

ответ

2

Мы используем Повысьте вместе с GCC 2.95.3, libstdC++ и STLport на ARMV4 платформы под управлением uClinux. Некоторые части Boost не совместимы с GCC 2.x, но те, которые хорошо работают в нашем конкретном случае. Библиотеки, которые мы используем, большинство из них date_time, связывают, функция, кортеж и нить.

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

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

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

+0

Можете ли вы прояснить использование как STLport, так и libstdC++ вместе? К какой из них добавляется ссылка? – bmdhacks

+0

Извините, он ссылается на STLport. –

0

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

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

+0

Boost требует стандартную библиотеку C++, если бы я попробовал, какую библиотеку C++ я бы использовал? – bmdhacks

+0

Кроме того, «попытка» - это немного боль для встроенных систем. Вы говорите, что я должен запустить мой кросс-компилятор и тратить часы и часы, пытаясь получить повышение, и работать с библиотекой C++? Если я ударил все препятствия, я просто потрачу больше времени на это, или я заключу, что это выполнимо? – bmdhacks

+0

Основываясь на количестве информации в исходном вопросе, «попробуйте» - это единственный ответ, который вы должны ожидать получить. «Возможно ли запустить KDE 4 на моем компьютере, пожалуйста, ответьте без меня, указав какие-либо спецификации моего компьютера». –

2

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

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

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

+0

Спасибо за информацию. Вы подозреваете, что libstdC++ Arcom является библиотекой GNU? Включает ли ваша система glibc для libc? – bmdhacks

+0

Да, LibstdC++ от Arcom - это версия GNU. И да, мы используем glibc. uclib также должен работать, но мы еще не пошли по этому пути. – MattyT

+0

Спасибо за информацию, но меня больше интересуют системы на основе uclibc. После того, как вы начнете использовать glibc и GNU libstdC++, вы в значительной степени будете такими же, как и хороший Redle на x86. Возможно, что glibc и GNU libstdC++ - единственные способы использования boost, но я надеюсь, что кто-то знает, так ли это. – bmdhacks

1

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

Надеется, что это помогает

+0

Спасибо за первый разумный ответ. Вы получили меня на полпути, что очень полезно. Я все еще держусь за кого-то, у кого есть практический опыт или доказательства того, что это действительно развертывается, учитывая большую щедрость, которую я предлагал. – bmdhacks

0

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

  1. Используйте свежие OpenEmbedded
  2. настроить его на использование Ангстрем
  3. Настройка ангстрем использовать uclibc
  4. грим импульс - Bitbake увеличить

 Смежные вопросы

  • Нет связанных вопросов^_^