使用autotools交叉编译yuma123用于MIPS目标

问题描述 投票:0回答:1

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

我使用目录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目录?

build cross-compiling autotools configure libtool
1个回答
0
投票

但是,如何安装到$INSTALL_PREFIX

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

[...]

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

你应该使用DESTDIR作为你的用例,虽然在实践中,你有可能逃脱使用--prefix

--prefix选项将预期永久安装位置的前缀传递给Autotools。在某些情况下,从它导出的这个或多个路径可能最终被合并到构建的二进制文件(RPATH,配置文件位置等)或构建的文档中。如果您使用libtool,尤其如此。如果前缀不能反映您希望文件实际存在于目标系统上的位置,那么这显然是不可取的。

另一方面,DESTDIR正是出于您描述的目的:安装到临时区域或替代根目录中。这是包装制造商通常使用的,例如,虽然我怀疑替代的根角是最初启发设施的角度。另请注意,如果您要安装到临时区域,那么您可能不需要使用sudomake install

© www.soinside.com 2019 - 2024. All rights reserved.