我正在编写一个bitbake食谱来部署第三方预构建工具,类似于这个维基页面:https://wiki.yoctoproject.org/wiki/TipsAndTricks/Packaging_Prebuilt_Libraries
但是,我有该工具的发布和调试预构建版本,以*.so文件的形式提供。我如何在配方中区分我应该部署哪一种构建类型?
谢谢和问候,马丁
发布于 2020-12-15 03:44:57
您可以有两个不同的虚拟食谱,每个都有自己的.so文件。然后,需要在配置文件(使用PREFERRED_PROVIDER_virtual/my-recipe)中进行选择,因此可以在机器或发行版配置文件中进行选择。如果您考虑发布和调试发行版,这可能是首选。
第二种选择是将库安装在两个不同的路径中,安装在两个不同的PACKAGES中(为此使用FILES_my-package ),并使它们相互RCONFLICTS_my-package,以确保它们不能同时存在于根文件系统中。在此之后,您可以编写一个特定于每个包的pkg_postinst_my-package()任务,该任务实际将库从“不同”路径移动到目标路径。这将在创建根文件系统时的构建时和第一次引导时的运行时运行,因此您需要确保排除其中的一个(通常通过检查${D}是否存在来完成,这是在构建时而不是运行时)。
c.f.:http://docs.yoctoproject.org/dev-manual/dev-manual-common-tasks.html#post-installation-scripts
如果您能够设法将这两个库都安装到您的根文件系统中,并使用LIBRARY_PATH环境变量选择您想要的库,那么一个简单的方法就足够了,其中包含两个包,每个库位于不同的位置。
https://stackoverflow.com/questions/65287566
复制相似问题