linux - 如何使用 yocto 食谱为 "configure"提供选项?

标签 linux cross-compiling autotools yocto recipe

我想在 yocto 中编写一个配方来构建我的自定义组件。因为我想根据机器启用一些标志。

例如:

如果机器是 x86

我的配置命令应该是这样的:

./configure --enable-x86

如果是x64

./configure --enable-x64

我正在使用自动工具进行构建。请帮助我编写配方以及实现此目的的“configure.ac”。

ps:我对yocto很陌生。

最佳答案

您可以使用 EXTRA_OECONF 提供配置选项。在这里,您还可以根据您的架构为其附加值。

EXTRA_OECONF_append_x86="--enable-x86"
EXTRA_OECONF_append_x64="--enable-x64"

只有当您的体系结构 (x86/x64) 被定义为适合 OVERRIDE 值时,您才能执行此操作。让我们看看 OVERRIDE 值是什么:

Yocto bitbake 配置值在 poky/meta/conf/bitbake.conf 中定义。在该文件中,有一个名为 OVERRIDE 的变量。 bitbake 配置中 OVERRIDE 的示例值如下所示:

OVERRIDES = "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${CLASSOVERRIDE}:forcevariable"

当您运行 bitbake -e 并收集输出时,OVERRIDE 的值会根据您的配置转换为。

OVERRIDES="linux:i586:build-linux:pn-defaultpkgname:x86:qemuall:qemux86:poky:class-target:forcevariable:libc-glibc"

在您的设置中,如果您可以看到 x86/x64 作为 OVERRIDE 值的一部分,那么您可以定义配置选项,如前所述。

关于linux - 如何使用 yocto 食谱为 "configure"提供选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25995070/

相关文章:

android - 检测USB设备是否为安卓手机

c++ - 如何在我的 Linux 主机上安装 Raspberry Pi 交叉编译器?

linux - './configure, make, make install' 项目叫什么?

c++ - 使用 (nobase_)pkginclude_HEADERS 在子目录中安装 header

c - Autotools - 选择要链接的库版本

c - 在 C 中定义常量数组

linux - LibreOffice 无法在 CentOS 上运行

c# - C#中SendKeys的跨平台实现?

c++ - 无法为 x86 编译代码,但可以为 arm 编译代码

linux - 使用包括 Lapack 在内的 CMake 将 Fortran 库从 Linux 交叉编译到 Windows