Comment comstackr un fichier c de base dans yocto

Je travaille sur yocto, je souhaite comstackr des fichiers c dans yocto et les installer sur un système de fichiers externe. Avant de faire cela, j’ai essayé de créer un reciepe séparé et de comstackr le code c à partir de celui-ci. Je suis incapable de le comstackr.

Je ne suis pas sûr de comprendre la question car ce n’est pas assez précis.

Inclure les fichiers C dans l’arbre de recette

Si vous voulez avoir les fichiers C dans votre recette, avoir une arborescence de fichiers comme celle-ci:

recipe-example/example/example_0.1.bb recipe-example/example/example-0.1/helloworld.c 

Vous pouvez générer cet exemple lorsque vous créez un nouveau calque à l’aide de

 yocto-layer  

Votre fichier bb ressemblera à ceci:

 # # This file was derived from the 'Hello World!' example recipe in the # Yocto Project Development Manual. # SUMMARY = "Simple helloworld application" SECTION = "examples" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" SRC_URI = "file://helloworld.c" S = "${WORKDIR}" do_comstack() { ${CC} helloworld.c -o helloworld } do_install() { install -d ${D}${bindir} install -m 0755 helloworld ${D}${bindir} } 

Il comstackra le fichier hello world et l’installera dans / usr / bin sur votre image.

À partir d’un repository Git

Vous pouvez aussi comstackr depuis un repository git, je vous conseille de lire le manuel et les exemples dans votre dossier yocto. Voici un exemple de câblagePi:

 DESCRIPTION = "A library to control Raspberry Pi GPIO channels" HOMEPAGE = "https://projects.drogon.net/raspberry-pi/wiringpi/" SECTION = "devel/libs" LICENSE = "LGPLv3+" LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02" # tag 2.29 SRCREV = "d79506694d7ba1c3da865d095238289d6175057d" S = "${WORKDIR}/git" SRC_URI = "git://git.drogon.net/wiringPi \ file://0001-Add-initial-cross-comstack-support.patch \ file://0001-include-asm-ioctl.h-directly-for-_IOC_SIZEBITS.patch \ " COMPATIBLE_MACHINE = "raspberrypi" CFLAGS_prepend = "-I${S}/wiringPi -I${S}/devLib" EXTRA_OEMAKE += "'INCLUDE_DIR=${D}${includedir}' 'LIB_DIR=${D}${libdir}'" EXTRA_OEMAKE += "'DESTDIR=${D}/usr' 'PREFIX=""'" do_comstack() { oe_runmake -C devLib oe_runmake -C wiringPi oe_runmake -C gpio 'LDFLAGS=${LDFLAGS} -L${S}/wiringPi -L${S}/devLib' } do_install() { oe_runmake -C devLib install oe_runmake -C wiringPi install oe_runmake -C gpio install } 

Il va chercher dans un repository git, en appliquant les correctifs générés par git, en utilisant oe_runmake pour comstackr avec les makefiles.

Avec devtool

Il a été demandé dans un commentaire sur la façon d’append une recette avec devtool. Nous allons encore utiliser le câblage comme exemple à nouveau. Téléchargez-le en faisant https://github.com/WiringPi/WiringPi Le Makefile est le dossier cablagePi. Vous pouvez alors faire

 devtool add   

Prenez soin de l’avertissement de devtool

 NOTE: Creating workspace layer in /home/dbensoussan/new_poky/poky/build/workspace NOTE: Enabling workspace layer in bblayers.conf NOTE: Using source tree as build directory since that would be the default for this recipe NOTE: Recipe /home/dbensoussan/new_poky/poky/build/workspace/recipes/project/project.bb has been automatically created; further editing may be required to make it fully functional 

Ceci génère la recette comme suit:

 # Recipe created by recipetool # This is the basis of a recipe and may need further editing in order to be fully functional. # (Feel free to remove these comments when editing.) # # WARNING: the following LICENSE and LIC_FILES_CHKSUM values are best guesses - it is # your responsibility to verify that the values are complete and correct. LICENSE = "Unknown" LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02" # No information for SRC_URI yet (only an external source tree was specified) SRC_URI = "" # NOTE: this is a Makefile-only piece of software, so we cannot generate much of the # recipe automatically - you will need to examine the Makefile yourself and ensure # that the appropriate arguments are passed in. do_configure () { # Specify any needed configure commands here : } do_comstack () { # You will almost certainly need to add additional arguments here oe_runmake } do_install () { # This is a guess; additional arguments may be required oe_runmake install 'DESTDIR=${D}' } 

Vous pouvez ensuite modifier votre recette en fonction de votre configuration