buildroot:仅构建一个包裹作为共享和静态lib,所有其他包装仅共享

Buildroot: Build only one package as both shared and static lib, all others shared only

本文关键字:共享 lib 静态 包装 其他 构建 包裹 一个 buildroot      更新时间:2023-10-16

buildroot提供了建造

的可能性
  • 只有静态,
  • 只有共享,
  • 或共享和静态液体

所选软件包的

分配的配置元素是BR2_STATIC_LIBSBR2_STATIC_LIBSBR2_SHARED_STATIC_LIBS

问题:

是否可以同时构建一个只有一个软件包的共享和静态lib ,而仅为构建所有其他软件包的共享libs

我想要一个静态lib的一个项目将是一个基于自动的软件包。

我的努力:

我确实阅读了手册,但无济于事。不过,我确实提出了一个想法,但是我认为这是行不通的:我可以将BuildRoot称为configure脚本,其中一些参数由我定义,强迫静态Lib的其他创建。但是,这将与Buildroot提供的参数相撞,这迫使configure做相反的事情。(仅创建共享lib。)

谢谢!

不幸的是,我什至无法判断我正在使用哪个版本的BuildRoot,因为我找不到一种获取BuildRoots版本号的方法。

buildroot不直接支持一个软件包的更改选项。那只会爆炸选项的数量。

最简单的方法是编辑package/foo/foo.mk并向其添加以下行:

FOO_CONF_OPTS += --enable-static

这些选项以默认的AutoConfig选项(包含--enable-shared --disable-static)为之后,因此将覆盖它们。

如果您不想触摸BuildRoot源,也可以在local.mkBR2_EXTERNAL中执行此操作 - 请参阅有关如何设置这些的手册。

buildroot版本编号是在变量BR2_VERSION中的makefile(当前主机中的第90行)的顶部编码的。您还可以查看生成的.config文件的顶部,该文件包含与Git Commit Hash扩展的版本。