在编译libX11过程中 在执行./configure的时候出现了 checking whether malloc(0) returns NULL… configure: error: in /home/mywork/VNC/libX11-1.6.10': configure: error: cannot run test program while cross compiling Seeconfig.log’ for more details 翻译一下就是 检查malloc(0)是否返回NULL…在’ /home/mywork/VNC/libX11-1.6.10’中: 配置:错误:交叉编译时无法运行测试程序 看到的配置。更多详细信息 因为我是交叉编译,所以无法运行测试程序
解决方法:根据错误提示checking whether malloc(0) 打开configure 查找checking whether malloc(0)这句查到这段代码
$ vi configure { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether malloc(0) returns NULL" >&5 $as_echo_n "checking whether malloc(0) returns NULL... " >&6; } if test "x$MALLOC_ZERO_RETURNS_NULL" = xauto; then if ${xorg_cv_malloc0_returns_null+:} 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;}其中xorg_cv_malloc0_returns_null变量就是我们需要找的变量 使用echo 命令将xorg_cv_malloc0_returns_null=yes写入到arm-linux.cache
$ echo "xorg_cv_malloc0_returns_null=yes" > arm-linux.cache然后–cache-file指令刚刚写入的文件arm-linux.cache执行configure就解决了
$ ./configure --prefix=$(pwd)/target_bin --host=arm-linux --cache-file=arm-linux.cache