Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Buildroot:只构建一个包作为共享和静态库,所有其他包只共享_C++_C_Shared Libraries_Static Libraries_Buildroot - Fatal编程技术网

C++ 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

buildroot提供了构建的可能性

  • 只是静态的,
  • 只分享,
  • 或者共享库和静态库
所选软件包的名称

分配的配置元素是
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”选项。因此,关于“启用静态”。您需要仔细查看各个包的构建系统。