【问题标题】:Cross-compile: How to install with one prefix, and deploy with a different prefix?交叉编译:如何使用一个前缀进行安装,并使用不同的前缀进行部署?
【发布时间】:2015-11-05 07:39:11
【问题描述】:

我正在尝试为替代架构交叉编译一些应用程序。

我的典型程序如下:

  1. 下载源代码并解压到 /var/source
  2. ./configure --prefix=/var/install CC=[my-cross-compiler-gcc]
  3. 制作
  4. 进行安装

这按预期工作:我的应用程序安装到 /var/install 中。

但是,当我将此应用程序部署到我的替代架构上时,我不希望它部署在 /var/install 中。我只是希望它像往常一样安装在 / 中。

我可以将它复制到 /,但是应用程序本身仍在尝试在 /var/install 中查找各种默认设置。

我想在我的 x86 系统上编译和安装该软件,但是当我将它部署到替代架构上时,我希望它就像我已将其安装到 /,而不是 /var/install 中一样。

有没有办法完成我想做的事情?

【问题讨论】:

    标签: cross-compiling


    【解决方案1】:

    如果我理解正确,您的 x86 系统上的 /var/install 在您的替代架构上将是 /。 要解决您的问题,您需要修改以下步骤:

    • configure肯定会在文件中做一些sed,所以需要指定最终的地方

      ./configure --prefix=/ CC=[my-cross-compiler-gcc]

    • automake 生成的makefile 支持变量DESTDIR,该变量位于安装路径之前:

      make DESTDIR=/var/install install

    【讨论】:

      【解决方案2】:

      我遇到了类似的问题,但我正在交叉编译并想安装到我设备的根目录。在这种情况下,我指定:

      make install DESTDIR=<path/to/rootfs>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-25
        • 2018-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        相关资源
        最近更新 更多