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

buildroot提供了构建的可能性

  • 只有静态,
  • 只有共享,
  • 或者共享和静态库

所选包裹

分配的配置元素是BR2_STATIC_LIBSBR2_STATIC_LIBSBR2_SHARED_STATIC_LIBS

题:

是否可以仅为一个包构建共享和静态库,同时仅为所有其他包构建共享库?

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

我的努力:

我确实阅读了手册,但无济于事。 我确实提出了一个想法,但我认为它不起作用:我可以使用buildroot调用configure脚本,并使用我定义的一些参数强制另外创建一个静态库。 但是,这会与buildroot提供的参数冲突,这会强制configure完全相反。 (仅创建共享库。)

谢谢!

不幸的是我甚至无法分辨出我正在使用哪个版本的buildroot,因为我没有找到获得buildroots版本号的方法。

Buildroot不直接支持仅更改一个包的选项。 这只会爆炸选项的数量。

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

 FOO_CONF_OPTS += --enable-static 

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

如果您不想触摸Buildroot源,您也可以在local.mklocal.mk执行此BR2_EXTERNAL – 请参阅手册以了解如何设置它们。

Buildroot版本号编码在变量BR2_VERSION Makefile的顶部(当前主站中的第90行)。 您还可以查看生成的.config文件的顶部,该文件包含使用git commit hash扩展的版本。