问题 交叉编译:如何使用一个前缀安装,并使用不同的前缀进行部署?


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

我的典型程序如下:

  1. 将源代码下载并解压缩到/ var / source
  2. ./configure --prefix = / var / install CC = [my-cross-compiler-gcc]
  3. 使
  4. make install

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

但是,当我将此应用程序部署到我的替代架构时,我不希望它部署在/ var / install中。我只是希望它安装在/正常情况下。

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

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

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


3753
2018-05-20 22:12


起源



答案:


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

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

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

  • automake生成的makefile支持变量DESTDIR,它安装在安装路径之前:

    make DESTDIR=/var/install install


13
2018-05-21 07:00





我有类似的问题,但我是交叉编译,并希望安装到我的设备的根目录。在这种情况下,我指定:

make install DESTDIR=<path/to/rootfs>

3
2018-03-05 15:24