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

时间:2011-05-20 22:12:12

标签: cross-compiling

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

我的典型程序如下:

  1. 将源代码下载并解压缩到/ var / source
  2. ./ configure --prefix = / var / install CC = [my-cross-compiler-gcc]
  3. 使
  4. make install
  5. 这可以按预期工作:我的应用程序已安装到/ var / install。

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

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

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

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

2 个答案:

答案 0 :(得分:13)

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

  • configure肯定会在文件中执行一些sed,因此您需要指定最终位置

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

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

    make DESTDIR=/var/install install

答案 1 :(得分:3)

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

make install DESTDIR=<path/to/rootfs>