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

时间:2017-08-30 11:13:04

标签: c++ c shared-libraries static-libraries buildroot

buildroot提供了构建

的可能性
  • only static,
  • 仅分享,
  • 或共享和静态库

所选包裹。

分配的配置元素为BR2_STATIC_LIBSBR2_STATIC_LIBSBR2_SHARED_STATIC_LIBS

问题:

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

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

我的努力:

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

谢谢!

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

1 个答案:

答案 0 :(得分:1)

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扩展的版本。