Question

Quelqu'un at-il déjà utilisé des applications C ++ utilisant les bibliothèques boost sur des systèmes uclibc? Est-ce même possible? Quelle bibliothèque standard C ++ utiliseriez-vous? Uclibc ++ est-il utilisable avec boost?

Était-ce utile?

La solution

Nous utilisons Boost avec GCC 2.95.3, libstdc ++ et STLport sur une plate-forme ARMv4 exécutant uClinux. Certaines parties de Boost ne sont pas compatibles avec GCC 2.x, mais celles qui fonctionnent bien dans notre cas particulier. Les bibliothèques que nous utilisons le plus souvent sont date_time , bind , fonction , tuple et thread .

Certaines des bibliothèques avec lesquelles nous avons eu des problèmes sont lambda , shared_pointer et format . Ces problèmes ont probablement été causés par notre version de GCC, qui présente des problèmes lorsque vous avez trop d'inclusions ou de niveaux plus profonds de structures de modèles.

Si possible, je vous recommanderais d'exécuter la suite de tests de boost avec votre chaîne d'outils particulière pour assurer la compatibilité. À tout le moins, vous pouvez compiler une chaîne d’outils native afin de vous assurer que les versions de vos bibliothèques sont compatibles.

Nous n'avons pas utilisé uClibc ++ car ce n'est pas ce que notre fournisseur d'outils propose, donc je ne peux pas en dire davantage sur cette combinaison particulière.

Autres conseils

Nous utilisons de nombreuses bibliothèques Boost (thread, système de fichiers, signaux, fonction, bind, toutes les versions, asio, smart_ptr, tuple) sur un Arcom Vulcan , qui est certes assez puissant pour un appareil intégré (64 M de RAM, 533 MHz XScale). Tout fonctionne à merveille.

GCC 3.4 mais nous n’utilisons pas uclib ++ (Arcom fournit une chaîne d’outils incluant libstd ++).

De nombreux périphériques embarqués exécuteront volontiers de nombreuses bibliothèques Boost, en supposant un support correct du compilateur. Faites juste attention à l'utilisation. Les bibliothèques Boost élèvent le niveau d'abstraction et il peut être facile d'utiliser plus de ressources que vous ne le pensez.

J'ai cherché sur Google "uclibc stlport". Il semble qu’il existe au moins quelques versions d’uclibc pour lesquelles stlport peut être compilé (voir this ). Cela dit, je dirais que Boost n’est qu’à quelques pas de la compilation. J'ai lu un message de David Abrahams (qui est un membre actif de la communauté de boost) qui dit que Boost ne dépend pas directement de la libc utilisée. Cependant, certaines bibliothèques peuvent toujours poser des problèmes, Boost.Python par exemple, car cela dépend de quelque chose (Python dans mon exemple) qui pourrait être difficile à compiler avec uclibc.

J'espère que cela vous aidera

Je n’ai pas essayé, mais je ne connais rien d’uclibc qui empêcherait Boost de fonctionner.

Essayez et voyez ce qui se passe, je dirais.

Oui, vous pouvez utiliser boost avec uclibc.
J'ai essayé avec boost 1.45 & amp; uclibc sur ARM9260

  1. Utiliser les nouveaux OpenEmbedded
  2. Configurez-le pour utiliser Angstrom
  3. Configurez Angstrom pour utiliser uclibc
  4. make boost - bitbake boost
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top