gpt4 book ai didi

yocto - 如何更改基于 autotools 的 Bitbake 配方的安装路径?

转载 作者:行者123 更新时间:2023-12-01 10:36:04 33 4
gpt4 key购买 nike

我有一个基于 autotools 的 BitBake 配方,我想在 /usr/local/bin 中安装二进制文件和安装在 /usr/local/lib 中的库(而不是 /usr/bin/usr/lib ,它们是默认的目标目录)。

这是autotools.bbclass的一部分我认为重要的文件。

CONFIGUREOPTS = " --build=${BUILD_SYS} \
--host=${HOST_SYS} \
--target=${TARGET_SYS} \
--prefix=${prefix} \
--exec_prefix=${exec_prefix} \
--bindir=${bindir} \
--sbindir=${sbindir} \
--libexecdir=${libexecdir} \
--datadir=${datadir} \
--sysconfdir=${sysconfdir} \
--sharedstatedir=${sharedstatedir} \
--localstatedir=${localstatedir} \
--libdir=${libdir} \
...

我认为完成我想做的事情的最简单方法就是简单地更改 ${bindir}${libdir} ,或者改变 ${prefix}/usr/local ,但我在这方面没有取得任何成功。有没有办法改变这些安装变量,或者我是否以错误的方式思考这个问题?

更新:

策略一

根据罗斯伯顿的建议,我尝试将以下内容添加到我的食谱中:
prefix="/usr/local"
exec_prefix="/usr/local"

但这会导致构建在该配方的 do_configure() 期间失败任务,并返回以下内容:
| checking for GLIB... no
| configure: error: Package requirements (glib-2.0 >= 2.12.3) were not met:
|
| No package 'glib-2.0' found

这个包可以在没有这些修改变量的正常构建过程中找到。我认为添加以下行可能会让系统找到 glib 的包元数据:
PKG_CONFIG_PATH = " ${STAGING_DIR_HOST}/usr/lib/pkgconfig  "

但这似乎没有任何区别。

策略二

我还尝试了 Ross Burton 的其他建议,将这些变量分配添加到我的发行版配置文件中,但这会导致它在 meta/recipes-extended/tzdata 期间失败。的 do_install()任务。它返回 DEFAULT_TIMEZONE is set to an invalid value.这是来自 tzdata_2015g.bb 的错误来源
# Install default timezone
if [ -e ${D}${datadir}/zoneinfo/${DEFAULT_TIMEZONE} ]; then
install -d ${D}${sysconfdir}
echo ${DEFAULT_TIMEZONE} > ${D}${sysconfdir}/timezone
ln -s ${datadir}/zoneinfo/${DEFAULT_TIMEZONE} ${D}${sysconfdir}/localtime
else
bberror "DEFAULT_TIMEZONE is set to an invalid value."
exit 1
fi

我假设我遇到了 ${datadir} 的问题,其中引用了 ${prefix} .

最佳答案

你想改变所有东西的路径还是只改变一个食谱?不知道为什么您只想将一种配方更改为 /usr/local , 但是无所谓。

如果要全部更改,那么简单的方法就是设置prefix在您的 local.conf或发行版配置 ( prefix = "/usr/local" )。

如果你想在一个特定的配方中做到这一点,那么只需分配 prefix="/usr/local"exec_prefix="/usr/local"在食谱中会起作用。

这些变量在 meta/conf/bitbake.conf 中定义,您可以在其中看到 bindir$exec_prefix/bin ,这可能就是分配 prefix 的原因没有为你工作。

关于yocto - 如何更改基于 autotools 的 Bitbake 配方的安装路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35206207/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com