最近交叉编译glib时,编译报错,通过网上资料整理报错处理。
我把我的编译流程做一下说明:
步骤一:从网上下载glib源代码,置于去哪里下,百度一下都有,下载你所需要的版本。下面以libglib2-2.28.8.tar.gz为例。
步骤二:在ubuntu上输入命令: 1:tar -xzvf libglib2-2.28.8.tar.gz
2:cd libglib2-2.28.8
3:./configure --prefix=/home/chenfm/libglib2-2.28.8 --host=arm-unknown-linux-gnu CFLAGS=-I/home/chenfm/inc --cache-file=arm-unknown-linux.cache --prefix指定安装路径 --host指定交叉工具 CFLAGS添加zlib相关头文件路径 --cache指定cache文件,因为configure不能为交叉编译检查glib_cv_stack_grows,glib_cv_stack_grows表示堆栈的增长方向。configure无法在目标机上运行测试程序,自然无法检查,只好手工指定。顺便看一下还哪些相关的变量不能检查的,一起写到cache文件中,并重新配置。
如果执行上面命令发现报checking for growing stack pointer... configure: error: cannot run test program while cross compiling
解决方法如下:在控制台进行如下配置:
[root@linux glib-2.8.0]# echo ac_cv_type_long_long=yes>arm-unknown-linux.cache
[root@linux glib-2.8.0]# echo glib_cv_stack_grows=no>>arm-unknown-linux.cache
[root@linux glib-2.8.0]# echo glib_cv_uscore=no>>arm-unknown-linux.cache
[root@linux glib-2.8.0]# echo ac_cv_func_posix_getpwuid_r=yes>>arm-unknown-linux.cache
[root@linux glib-2.8.0]# echo ac_cv_func_posix_getgrgid_r=yes>>arm-unknown-linux.cache
然后在输入上面步骤二的第三条命令即可。
阅读(2725) | 评论(1) | 转发(0) |