Search code examples
sdkcross-compilingyoctobitbaketoolchain

How to include a proprietary libary into the toolchain (SDK) for an embeeded Linux generated by Yocto?


I am looking for an example which shows how to include a proprietary library into the toolchain.

Let's call the library myLib. For it I created a recipe myLib.bb and added:

BBCLASSEXTEND = "native nativesdk"

In my "local.conf" I added:

IMAGE_INSTALL_append = " myLib"

When building the SDK by:

$ bitbake myTarget -c populate_sdk

It produces an installer for the SDK and two manifest files. myLib is only included in the target manifest and not on the host. How can I include myLib on the host system?


The idea is, that another person can build software on his system without the Yocto system. Only by using the toolchain he can generate binaries, which can be transferred and executed at the evalboard.


Solution

  • As long as your library myLib is installed into the image, it's supposed to be part of your generated SDK. Which you also say that it is, at least as part of the target manifest.

    Ensure that you install the required header files for your library, then you should be able to cross-compile against your library.

    Do you need to use myLib on the developers build machine? Otherwise, why do you want to have it added to the nativesdk part? (I.e. the host manifest). This is for applications that needs to run on the host machine, i.e. the cross-compiler, code generators etc.