使用自动工具针对MIPS目标交叉编译yuma123

时间:2019-03-11 18:41:30

标签: build cross-compiling autotools configure libtool

我正在尝试将Ubuntu 18.04开发系统上的yuma123开源软件包交叉编译为MIPS目标,其中yuma123使用自动工具和共享库。

我正在使用目录INSTALL_PREFIX=/tmp/yuma123作为将文件复制到MIPS目标的暂存区。

使用以下代码(交叉)编译和链接没有任何错误:

autoreconf -i -f
./configure ...
make

但是,如何安装到$INSTALL_PREFIX

我应该为--prefix=指定一些./configure选项,如下所示:

./configure \
    --target=mipsel-buildroot-linux-gnu \
    --host=mipsel-buildroot-linux-gnu \
    --build=x86_64-unknown-linux-gnu \
    --prefix=$INSTALL_PREFIX/usr \
    --sysconfdir=$INSTALL_PREFIX/etc \
    --localstatedir=$LOCALSTATEDIR \
    --program-prefix=""

或者在我DESTDIR=时应指定sudo make install,如下所示:

sudo make DESTDIR=$INSTALL_PREFIX install

我需要在上面进行哪些设置,以确保以这种方式交叉编译时,libtool为共享库正确处理$INSTALL_PREFIX目录?

1 个答案:

答案 0 :(得分:0)

  

但是,如何安装到$INSTALL_PREFIX

     

我应该为--prefix=指定一些./configure选项吗?

     

[...]

     

或者我应该DESTDIR= [?]时指定sudo make install

您应该DESTDIR用于您的用例,尽管在实践中,您可能会摆脱使用--prefix的使用。

--prefix选项将预期的永久安装位置的前缀传达给Autotools。在某些情况下,此路径或从其派生的路径可能最终被合并到内置二进制文件(RPATH,配置文件位置, etc 。)或内置文档中。如果您使用的是libtool,则尤其如此。如果前缀不能反映文件在目标系统上的实际位置,则显然是不希望的。

另一方面,

DESTDIR恰恰是您所描述的目的 :将其安装到暂存区或备用根目录中。例如,这就是包装制造商通常使用的,尽管我怀疑替代的根角是最初启发该设施的那个。还要注意,如果要安装到暂存区,则可能不需要使用sudomake install

相关问题