ntdisp交叉编译、移植
- 下载ntdisp源码ntdisp-0.5.1.tar.bz2,同时下载依赖库的源码库;libffi_3.2.1.orig.tar.gz、glib2.0_2.32.1.orig.tar.xz(若是在x86上编译则可以在线安装这些支持库);
- libffi是glib2.0的依赖库,所以先编译安装libffi库,然后编译安装glib2.0库;
- 编译安装libffi库;
1)解压libffi_3.2.1.orig.tar.gz:tar jxvf libffi_3.2.1.orig.tar.gz;
2)./configure --prefix=/opt/arm-ntdisp --host=arm-linux CC=arm-none-linux-gnueabi-gcc;
3) make;
4) make install。
在/opt/arm-ntdisp目录下生成目标文件。 - 编译安装glib2.0库;
1)解压glib2.0_2.32.1.orig.tar.xz,xz -d glib2.0_2.32.1.orig.tar.xz生成glib2.0_2.32.1.orig.tar,tar xvf glib2.0_2.32.1.orig.tar将文件解压;
2)./configure --prefix=/opt/arm-ntdisp --host=arm-linux CC=arm-none-linux-gnueabi-gcc LIBFFI_CFLAGS=-I/opt/arm-ntdisp/lib/libffi-3.2.1/include LIBFFI_LIBS=-L/opt/arm-ntdisp/lib\ -lffi;
出现问题提示,解决问题之后重新配置configure,直到配置成功。
问题一:
问题描述:checking for growing stack pointer… configure: error: in/home/zwenqian/opt/HG856/ntdisp/glib-2.32.1': configure: error: cannot run test program while cross compiling See
config.log’ for more details
解决方法:修改configure文件中22110行到22122行:
{
$as_echo "$as_me:${as_lineno-$LINENO}: checking for growing stack pointer" >&5
$as_echo_n "checking for growing stack pointer... " >&6; }
if ${glib_cv_stack_grows+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "$cross_compiling" = yes; then :
{
{
$as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
修改为:
{
$as_echo "$as_me:${as_lineno-$LINENO}