Yocto 已生成库,但不是rootfs的一部分
我已经使用yocto(核心图像最小)构建了图像。我需要“libtinfo”库来运行我的应用程序,但它不是rootfs的一部分 我可以看到这个库是在“cortexa7hf neon poky linux gnueabi”文件夹下构建和提供的,但它在rootfs中不可用。我已经使用IMAGE\u INSTALL\u append添加了 我的疑问是,如果rootfs(核心映像最小)不需要这个库,那么就不应该构建它Yocto 已生成库,但不是rootfs的一部分,yocto,Yocto,我已经使用yocto(核心图像最小)构建了图像。我需要“libtinfo”库来运行我的应用程序,但它不是rootfs的一部分 我可以看到这个库是在“cortexa7hf neon poky linux gnueabi”文件夹下构建和提供的,但它在rootfs中不可用。我已经使用IMAGE\u INSTALL\u append添加了 我的疑问是,如果rootfs(核心映像最小)不需要这个库,那么就不应该构建它 为什么yocto要建那个图书馆?libudev库也观察到类似的行为 在回答您的问题之前,
为什么yocto要建那个图书馆?libudev库也观察到类似的行为 在回答您的问题之前,如果您有一个依赖于“libtinfo”的应用程序,并且您的应用程序也是使用yocto构建的(比如sample_app.bb),那么您应该使用
DEPENDS += "libtinfo"
RDEPENDS_${PN} += "libtinfo"
这将指示yocto在rootfs中包含库,因为您的应用程序在运行时需要它
我的疑问是,如果不需要图书馆
rootfs(核心映像最小)则不应构建它
假设您有一个生成二进制和库的包的源,例如kmod
生成libkmod
和modprobe、insmod、rmmod
的源。在这种情况下,配方的编写方式可以产生两个不同的包(根据配置,您可以看到*.rpm或*.ipk)文件,即kmod.*.ipk/rpm
和libkmod2.*.ipk/rpm
根据应用程序的实际需求,您可以在RDEPENDS
中使用kmod
或libkmod
在您的情况下,libtinfo
是在ncurses
包中构建的,任何包在rootfs中都可能不需要它
为什么yocto要建那个图书馆?同样的行为也被观察到
libudev图书馆也有
默认情况下,源组件ncurses
或systemd
的配方分别包括libtinfo
和libudev
的配置(do\u configure
)。但它不包括在rootfs中,因为在运行时没有任何软件需要它
您始终可以使用检查依赖关系图
bitbake -g <recipe name>
bitbake-g
如前所述。在回答您的问题之前,如果您有一个依赖于“libtinfo”的应用程序,并且您的应用程序也是使用yocto构建的(比如sample_app.bb),那么您应该使用
DEPENDS += "libtinfo"
RDEPENDS_${PN} += "libtinfo"
这将指示yocto在rootfs中包含库,因为您的应用程序在运行时需要它
我的疑问是,如果不需要图书馆
rootfs(核心映像最小)则不应构建它
假设您有一个生成二进制和库的包的源,例如kmod
生成libkmod
和modprobe、insmod、rmmod
的源。在这种情况下,配方的编写方式可以产生两个不同的包(根据配置,您可以看到*.rpm或*.ipk)文件,即kmod.*.ipk/rpm
和libkmod2.*.ipk/rpm
根据应用程序的实际需求,您可以在RDEPENDS
中使用kmod
或libkmod
在您的情况下,libtinfo
是在ncurses
包中构建的,任何包在rootfs中都可能不需要它
为什么yocto要建那个图书馆?同样的行为也被观察到
libudev图书馆也有
默认情况下,源组件ncurses
或systemd
的配方分别包括libtinfo
和libudev
的配置(do\u configure
)。但它不包括在rootfs中,因为在运行时没有任何软件需要它
您始终可以使用检查依赖关系图
bitbake -g <recipe name>
bitbake-g
如前所述