2011-05-20 82 views
11

我想交叉编译一些替代体系结构的应用程序。交叉编译:如何使用一个前缀进行安装,并使用不同的前缀进行部署?

我的典型程序如下:

  1. 下载和解压源到的/ var /源
  2. 的./configure前缀=的/ var /安装CC = [我的交叉编译器的gcc ]
  3. 使
  4. 使安装

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

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

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

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

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

回答

13

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

  • 配置肯定会做在文件中的一些sed的,所以你需要指定最后的地方生成的makefile

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

  • 由automake支持预先安装到安装路径的变量DESTDIR:

    make DESTDIR=/var/install install

3

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

make install DESTDIR=<path/to/rootfs>