gpt4 book ai didi

linux - 为交叉工具链部署库

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:17 25 4
gpt4 key购买 nike

我正在为 i686 linux 机器人系统构建交叉工具链。我正在使用我的 x86_64 Ubuntu 14.04 系统构建工具链。在为目标 i686-linux-gnu 构建工具链后,我最终在我的构建目录中得到了一个名为 i686-linux-gnu 的目录。该目录似乎有许多文件夹位于目标系统的根目录中:

  • build_directory
    • i686-linux-gnu
      • bin
      • etc
      • include
      • lib
      • libexec
      • sbin
      • share
      • var

我的假设是这些是与构建的工具链相对应的支持文件,并且这些文件旨在存在于目标系统上

我试过简单地将这些目录复制到目标系统的根 / 中,覆盖任何现有文件。这带来了灾难性的后果。例如,由于缺少/不正确的库搜索路径,我无法运行 lssudo。所以我现在有两个问题:

  1. 我是否正确地将这些库部署到目标系统?如果不是,正确的部署过程是什么?

  2. 如果这正确的部署过程,为什么我的搜索路径会被破坏?系统不应该继续使用默认的搜索路径/lib/usr/lib等吗?

我的工具链构建脚本也在 pastebin 上可用(由于大小)。

最佳答案

这个问题有点含糊,所以我做了一些假设。我假设您正在从头开始创建一个工具链,并且您只在 pastebin 上使用该脚本。

我还假设您打算替换此设备上的整个文件系统。

您的脚本不是为 ls 或 sudo 安装二进制文件,对于嵌入式系统,通常为这些使用 busybox。

我还想建议您查看 buildroot,它比从头开始构建您自己的工具链要容易得多,而且一些供应商告诉我在将库编译到他们的嵌入式系统时使用它。


如果您真的只想部署一些库:

这看起来不像是正确的过程,您的工具链可能已经创建了为空根文件系统做准备的默认文件。你应该尝试只复制你感兴趣的库,以及与之相关的东西。不知道您在说什么库,很难说清楚

看看你是否有一个类似/etc/ld.so.conf 的文件,和/或一个名为/etc/ld.so.conf.d 的目录这是centos系统中的库搜索路径。

关于linux - 为交叉工具链部署库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34520970/

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