交叉编译移植常见问题


 解决libc.so.6: version `GLIBC_2.14' not found问题

 

1.试图运行程序,提示"libc.so.6: version `GLIBC_2.14' not found",原因是系统的glibc版本太低,软件编译时使用了较高版本的glibc引起的:

 

 

2.查看系统glibc支持的版本:

  1. [ghui@StuOS bin]$ strings /lib64/libc.so.6 |grep GLIBC_  
  2. GLIBC_2.2.5  
  3. GLIBC_2.2.6  
  4. GLIBC_2.3  
  5. GLIBC_2.3.2  
  6. GLIBC_2.3.3  
  7. GLIBC_2.3.4  
  8. GLIBC_2.4  
  9. GLIBC_2.5  
  10. GLIBC_2.6  
  11. GLIBC_2.7  
  12. GLIBC_2.8  
  13. GLIBC_2.9  
  14. GLIBC_2.10  
  15. GLIBC_2.11  
  16. GLIBC_2.12  
  17. GLIBC_PRIVATE   

 

  1. [ghui@StuOS bin]$ rpm -qa |grep glibc  
  2. glibc-static-2.12-1.80.el6_3.6.x86_64  
  3. glibc-headers-2.12-1.80.el6_3.6.x86_64  
  4. glibc-common-2.12-1.80.el6_3.6.x86_64  
  5. glibc-devel-2.12-1.80.el6_3.6.x86_64  
  6. glibc-static-2.12-1.80.el6_3.6.i686  
  7. glibc-devel-2.12-1.80.el6_3.6.i686  
  8. glibc-2.12-1.80.el6_3.6.i686  
  9. glibc-2.12-1.80.el6_3.6.x86_64  

直接拷贝 工具链中的 libc库到文件系统中即可

 

gcc版本太高导致libbow编译错误的解决方案

 

版本:
arm-hisiv500-linux-gcc (Hisilicon_v500_20170922) 4.9.4 20150629 (prerelease)
bow-20020213


错误1:
bow/libbow.h

2128行: array type has incomplete element type(数组类型不完全)
出错行:
extern struct argp_child bow_argp_children[];
解决:
出错的原因是不允许在定义之前声明,将该行注释,之后在所有提示‘bow_argp_children’未声明的语句之前加上:
extern struct argp_child bow_argp_children[];

错误2: operator '&&' has no right operand(操作符&&缺少右操作数)
在argp/argp-fs-xinl.c和argp/argp-xinl.c两个文件的第一行加上:
#include <stdio.h>

错误3:
error: invalid storage class for function 'grow_if_necessary'('grow_if_necessary'的存储类无效)
gcc在编译时不允许static型的函数声明出现在函数定义中,去掉static即可

错误4:
label at end of compound statement(标志出现在复合语句的末尾)
GCC4不允许行标记之后为空,加上空语句";"就可以了,如
  default:
}
改成:
  default: ;
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM