Hello to all, I have searching for a way to include a library-only in yocto. I found couple links with suggestions but I was unsuccessful in the to package it in the final image. Reading the yocto documentation, I see a paragraph mentioning about static libraries but there is no examples.
I will try to be precise with the hopes to find help to tackle this issue. NOTE: Couple steps like creating a LICENSE file, crate the layer and update the local.conf file are omitted =============================== The problem: - Creating a library that it is desired to be part of the final image (for example core-image-base, core-image-sato). No application, only a library ============================== Test scenario: Let's say that we desire to create a simple library called simple lib. The source code is as follows (taken from this link [http://www.adp-gmbh.ch/cpp/gcc/create_lib.html], copied here just for convenience) calc_mean.c //#include <stdio.h> double mean(double a, double b) { return (a+b) / 2; } calc_mean.h double mean(double, double); Now we want to create a recipe that can compile, create a library and can be included in the final image (let's assume core-image-base) ============================ RECIPE Recipe name => simplelib_0.1.0.bb =========================== DESCRIPTION = "Simple Library on yocto" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://LICENSE;md5=c0b0999e102092552f1dfe93fb9b0068" PR = "r0" SRC_URI = "file://simplelib.zip" S = "${WORKDIR}/simplelib/" do_compile(){ ${CC} -c calc_mean.c -o calc_mean.o ${AR} rcs libmean.a calc_mean.o } do_install{ install -d ${D}${libdir} install -m 0644 libmean.a ${D}${libdir} } ===================== Test results for RECIPE: $ bitbake simplelib RUNS without any problem. The files generated are shown below ├── configure.sstate ├── deploy-ipks │ └── cortexa8hf-vfp-neon │ ├── simplelib-dbg_0.1.0-r0_cortexa8hf-vfp-neon.ipk │ ├── simplelib-dev_0.1.0-r0_cortexa8hf-vfp-neon.ipk │ └── simplelib-staticdev_0.1.0-r0_cortexa8hf-vfp-neon.ipk ├── image │ └── usr │ └── lib │ └── libmean.a ├── license-destdir │ └── simplelib │ ├── generic_GPLv2 │ └── LICENSE ├── package │ └── usr │ └── lib │ └── libmean.a ├── packages-split │ ├── simplelib │ ├── simplelib-dbg │ ├── simplelib-dev │ ├── simplelib-doc │ ├── simplelib-locale │ └── simplelib-staticdev │ └── usr │ └── lib │ └── libmean.a ├── pkgdata │ ├── runtime │ │ ├── simplelib │ │ ├── simplelib-dbg │ │ ├── simplelib-dbg.packaged │ │ ├── simplelib-dev │ │ ├── simplelib-dev.packaged │ │ ├── simplelib-doc │ │ ├── simplelib-locale │ │ ├── simplelib-staticdev │ │ └── simplelib-staticdev.packaged │ ├── runtime-reverse │ │ ├── simplelib-dbg -> ../runtime/simplelib-dbg │ │ ├── simplelib-dev -> ../runtime/simplelib-dev │ │ └── simplelib-staticdev -> ../runtime/simplelib-staticdev │ ├── runtime-rprovides │ ├── shlibs2 │ └── simplelib ├── pseudo │ ├── files.db │ ├── logs.db │ ├── pseudo.lock │ ├── pseudo.log │ ├── pseudo.pid │ └── pseudo.socket ├── simplelib │ ├── calc_mean.c │ ├── calc_mean.h │ ├── calc_mean.o │ ├── libmean.a │ └── LICENSE ├── sysroot-destdir │ ├── sysroot-providers │ │ └── simplelib │ └── usr │ └── lib │ └── libmean.a =============== Test result to include library in the image $ bitbake core-image-base FAILS, * opkg_install_cmd: Cannot install package simplelib. ERROR: Function failed: do_rootfs ============== TRY ONE, Change the recipe and add RDEPENDS_${PN}-dev = "" as suggested by https://lists.yoctoproject.org/pipermail/yocto/2014-September/021676.html FAILS, same error * opkg_install_cmd: Cannot install package simplelib. ============= TRY TWO Modify recipe adding below lines (based on http://stackoverflow.com/questions/28792597/how-to-add-a-new-library-using-yocto) PACKAGES = "${PN} ${PN}-dev ${PN}-dbg ${PN}-staticdev" FILES_${PN} = " \ ${libdir}/simplelib/ \ " FAILS, same error * opkg_install_cmd: Cannot install package simplelib. =============== I am sure that it is something simple and common that many have done in the past but unfortunately I can not find an example on how to do it. Hope somebody could provide a hint on how to fix this problem. Thanks -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto