Quantcast
Channel: Sam的技术Blog
Viewing all articles
Browse latest Browse all 158

autoconf交叉编译细节

$
0
0
作者:Sam (甄峰) sam_code@hotmail.com

使用autoconf 交叉编译时,会遇到非常多异常。Sam一向是强行改过来就好。但也知道这不是正规做法。现在把一些做法记录如下:


问题1:
$ CC=arm-linux-gnueabihf-gcc ./configure --host=arm-linux
报错:
checking for growing stack pointer... configure: error: in `/home/sam/work/current/Source/Robot_ROS/Bluetooth/3rdParty/glib-2.51.0':
configure: error: cannot run test program while cross compiling
不能使用交叉编译器编译测试程序。

首先打开configure,找到growing stack部分。
{ $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; }

可以看到,如果变量glib_cv_stack_grows 为false. 则正常通过。

所以可以如下操作:
$echo glib_cv_stack_grows=no>>arm-linux.cache
$CC=arm-linux-gnueabihf-gcc ./configure --host=arm-linux --cache-file=arm-linux.cache

问题解决。



 

Viewing all articles
Browse latest Browse all 158

Trending Articles