make[4]: Entering directory `/home/joe/Downloads/glib-2.32.4/gobject'
CCLD gobject-query
./.libs/libgobject-2.0.so: undefined reference to `ffi_type_pointer'
./.libs/libgobject-2.0.so: undefined reference to `ffi_type_float'
./.libs/libgobject-2.0.so: undefined reference to `ffi_type_void'
./.libs/libgobject-2.0.so: undefined reference to `ffi_type_sint64'
./.libs/libgobject-2.0.so: undefined reference to `ffi_prep_cif'
./.libs/libgobject-2.0.so: undefined reference to `ffi_type_uint32'
./.libs/libgobject-2.0.so: undefined reference to `ffi_type_double'
./.libs/libgobject-2.0.so: undefined reference to `ffi_call'
./.libs/libgobject-2.0.so: undefined reference to `ffi_type_sint32'
./.libs/libgobject-2.0.so: undefined reference to `ffi_type_uint64'
collect2: ld returned 1 exit status
make[4]: *** [gobject-query] Error 1
make[4]: Leaving directory `/home/joe/Downloads/glib-2.32.4/gobject'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/joe/Downloads/glib-2.32.4/gobject'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/joe/Downloads/glib-2.32.4/gobject'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/joe/Downloads/glib-2.32.4'
make: *** [all] Error 2
configure: error: Package requirements (libffi >= 3.0.0) were not met:
No package 'libffi' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
./configure: glib-compile-schemas not found
这个问题挺奇怪,既然要编译glib,竟然还要先在PC上编译一个glib,然后编第二次使用第一次边出来的bin文件。
http://www.spinics.net/lists/gtk/msg17208.html这个patch在这里做一个记录。
checking for growing stack pointer...configure: error: cannot run test program while cross compiling
echo ac_cv_type_long_long=yes>$ARCH-linux.cache
echo glib_cv_stack_grows=no>>$ARCH-linux.cache
echo glib_cv_uscore=no>>$ARCH-linux.cache
echo ac_cv_func_posix_getpwuid_r=yes>>$ARCH-linux.cache
gmodule.so not found
glib编译过程中会引用先前编译出来的库文件,然而竟然没有找到,find了一下发现在make install之前这个库的位置,故而用-Wl -rpath在指定。
netlink/genl/genl.h: No such file or directory
如果指定系统/usr/include目录给CFLAGS,以提示genl.h的位置,这个问题是没有了,会出现其他问题,提示__asm__错误,原来定义/usr/include之后,有些头文件就到这个目录下去找,也就是找x86的头文件,这和arm的不兼容,故出现问题。也就是上面描述的总结5。