C++ Buildroot:只构建一个包作为共享和静态库,所有其他包只共享
buildroot提供了构建的可能性C++ Buildroot:只构建一个包作为共享和静态库,所有其他包只共享,c++,c,shared-libraries,static-libraries,buildroot,C++,C,Shared Libraries,Static Libraries,Buildroot,buildroot提供了构建的可能性 只是静态的, 只分享, 或者共享库和静态库 所选软件包的名称 分配的配置元素是BR2\u STATIC\u LIBS,BR2\u STATIC\u LIBS,以及BR2\u SHARED\u STATIC\u LIBS 问题: 是否可以只为一个包构建共享库和静态库,而只为所有其他包构建共享库 我想要一个静态库的一个项目是一个基于autotools的包 我的努力: 我确实读了手册,但没有用。虽然我确实想到了一个主意,但我认为它行不通:我可以让buildro
- 只是静态的,
- 只分享,
- 或者共享库和静态库
BR2\u STATIC\u LIBS
,BR2\u STATIC\u LIBS
,以及BR2\u SHARED\u STATIC\u LIBS
问题:
是否可以只为一个包构建共享库和静态库,而只为所有其他包构建共享库
我想要一个静态库的一个项目是一个基于autotools的包
我的努力:
我确实读了手册,但没有用。虽然我确实想到了一个主意,但我认为它行不通:我可以让buildroot调用configure
脚本,使用一些参数,这些参数是由我强制额外创建一个静态库定义的。但是,这将与buildroot提供的参数冲突,这些参数正迫使configure
执行相反的操作。(仅创建共享库。)
谢谢大家!
不幸的是,我甚至不能说出我正在使用哪个版本的buildroot,因为我没有找到获取buildroots版本号的方法。buildroot不直接支持仅对一个包更改选项。这将大大增加选择的数量 最简单的方法是编辑
package/foo/foo.mk
并添加以下行:
FOO_CONF_OPTS += --enable-static
这些选项位于默认的自动配置选项(包含--启用共享--禁用静态
)之后,因此将覆盖它们
如果您不想接触Buildroot源代码,也可以在local.mk
或BR2\u EXTERNAL
中进行,请参阅手册以了解如何设置这些源代码
Buildroot版本号编码在变量
BR2\u version
的Makefile顶部(当前主控中的第90行)。您还可以查看生成的.config
文件的顶部,其中包含使用git提交散列扩展的版本。定义FOO\u CONF\u OPTS
也是我的想法。然而,我不知道后续选项会优先于之前的选项。这确实是一个解决方案!请注意,大多数但并非所有受Buildroot支持的包都是autoconf包,并且大多数但并非所有autoconf包都支持“-enable static”选项。因此,关于“启用静态”。您需要仔细查看各个包的构建系统。