使用自动工具交叉编译 yuma123 以获得 MIPS 目标



我正在尝试将 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=""

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

sudo make DESTDIR=$INSTALL_PREFIX install

我需要在上面设置什么才能确保libtool以这种方式交叉编译时正确处理共享库的$INSTALL_PREFIX目录?

但是,如何安装到$INSTALL_PREFIX

我是否应该指定一些--prefix=选项来./configure

[...]

还是我应该DESTDIR=sudo make install[?

您应该为您的用例使用DESTDIR,尽管在实践中,您可以使用--prefix.

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

另一方面,DESTDIR正是为了您描述的目的:安装到暂存区域或替代根中。 例如,这就是包构建者通常使用的,尽管我怀疑替代根角度是最初启发设施的那个。 另请注意,如果您要安装到暂存区域,则可能不需要使用sudomake install

相关内容

  • 没有找到相关文章

最新更新