Buildroot:仅构建一个包作为共享库和静态库,所有其他包仅共享

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

buildroot 提供构建的可能性

个所选包。

分配的配置元素是 BR2_STATIC_LIBSBR2_STATIC_LIBSBR2_SHARED_STATIC_LIBS

问题:

是否可以只为一个包构建共享库和静态库,而只为所有其他包[=45=构建共享库]?

我想要一个静态库的项目是一个基于 autotools 的包。

我的努力:

我确实看过手册,但无济于事。虽然我确实提出了一个想法,但我认为它行不通:我可以让 buildroot 使用我定义的一些参数调用 configure 脚本,强制额外创建一个静态库。但是,这会与 buildroot 提供的参数发生冲突,这些参数会迫使 configure 做相反的事情。 (仅创建共享库。)

谢谢!

不幸的是,我什至不知道我使用的是哪个版本的 buildroot,因为我没有找到获取 buildroots 版本号的方法。

Buildroot 不直接支持仅更改一个包的选项。那只会使选项的数量激增。

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

FOO_CONF_OPTS += --enable-static

这些选项位于默认自动配置选项(包含 --enable-shared --disable-static)之后,因此将覆盖它们。

如果您不想接触 Buildroot 源,您也可以在 local.mkBR2_EXTERNAL 中执行此操作——请参阅手册了解如何设置它们。

Buildroot 版本号编码在变量 BR2_VERSION 的 Makefile 顶部(当前母版中的第 90 行)。您还可以查看生成的 .config 文件的顶部,其中包含使用 git 提交哈希扩展的版本。