2017-06-09 2 views
2

Mon objectif est d'avoir un SDK Yocto avec les bibliothèques de boost incluses. Certaines des bibliothèques fournies par Boost sont uniquement en-tête mais beaucoup d'autres doivent être compilées pour mon architecture cible. Je suis assez nouveau au Yocto donc je suis confronté à quelques difficultés. Je n'ai eu aucun problème à définir un nouveau calque pour mon serveur web dans bblayers.conf et à ajouter des paquets dans le fichier local.conf pour apache et php. J'ai été assez chanceux d'avoir ces paquets déjà inclus dans le yocto krogoth.Ajouter une recette Boost à Yocto SDK

Le problème se pose avec l'installation d'un nouveau paquet non présent (ou récupéré) dans la version normale, comme c'est le cas pour les bibliothèques boost. Je trouve this ressource sur OpenEmbedded ce qui explique cette poussée appartient à la couche OpenEmbedded-core et donne cette recette à ajouter à la couche:

require boost-${PV}.inc 
require boost.inc 

SRC_URI += "\ 
    file://arm-intrinsics.patch \ 
    file://boost-CVE-2012-2677.patch \ 
    file://0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch \ 
    file://boost-math-disable-pch-for-gcc.patch \ 
    file://0001-Apply-boost-1.62.0-no-forced-flags.patch.patch \ 
    file://0003-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch \ 
    file://0002-Don-t-set-up-m32-m64-we-do-that-ourselves.patch \ 
    file://0001-correct-error-which-appeared-when-compiling-non-c-co.patch \ 
" 

Je suis tout à fait incertain sur la façon de l'utiliser. Dois-je télécharger les librairies boost et les décompresser dans un répertoire? Devrais-je conserver l'archive?

En lisant une partie de la documentation, ce fichier attend une ressource "file", donc quelque chose trouvé sur mon disque local. En outre, où dois-je placer la recette bb? Y a-t-il un dossier par défaut? D'après ce que j'ai lu, cela n'a pas vraiment d'importance, mais c'est une bonne pratique de garder des couches avec des couches, des recettes avec des recettes et ainsi de suite.

alors je devrais reconstruire sans doute l'image et enfin effectuer une: bitbake -c populate_sdk

Pourriez-vous me aider peut-être?

Répondre

3

La couche meta par défaut de yocto fournit la version 1.63 de boost sous recipes-support. Tant que cette couche est listée dans le bblayers.conf vous devriez être capable de construire boost 1.63 sans travail supplémentaire.

Si une version plus récente est nécessaire, vous pouvez créer un boost-{version}.inc de votre choix et définir le SRC_URI pour le téléchargement souhaité. Bien que 1.63 devrait être suffisant pour la plupart des utilisations.

+0

Merci pour votre aimable réponse. J'ai remarqué que j'avais déjà des couches openembedded-core et meta-oe, mais je ne pense pas qu'elles contiennent par défaut les bibliothèques boost. Ai-je tort ? – Podarce

+0

@Podarce Laissez-moi éditer. – mascoj

+0

@Podarce Vérifiez la mise à jour. Boost est fourni dans la couche par défaut. – mascoj