找回密码
 注册
关于网站域名变更的通知
查看: 327|回复: 1
打印 上一主题 下一主题

could not read symbols: File format not recognized

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-4-16 10:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

5 }% }+ ?) d* W  f2 M/ XARM-linux-gnueabi-readelf工具解决问题  k1 V8 B. Y' S1 r/ y; G2 p
编译一个32位平台的内核时,出现如下错误提示:
) g) C! M1 r  l8 G+ l/ ]  ~$ K# G
libschw.a: could not read symbols: File format not recognized9 ]0 K% V9 U! K( ^% A, g

3 A. ]8 e1 `9 C0 V/ W" \于是进入相应的目录发现,libschw.a这个文件是存在的,但是为啥编译不过呢,同样的编译在另外一个64位平台却没有这个报错。! i, a  [; d6 _3 e" ^
9 W9 d+ o# P0 y8 b9 F7 K
思路:是否与32位64位平台有关?, F8 T' k" ?3 U3 o2 e; ?" v  m
使用readelf来查看一下这个库,
: u4 G& J8 q; X* b8 v* m$ arm-linux-gnueabi-readelf -h modules/aw_schw/libschw
0 E7 F! A; W, ]5 c# C1 `% a! o( ^File: modules/aw_schw/libschw(aw_schw_lib.o)
# v, ]/ n' H/ V7 N6 u+ VELF Header:
9 I% Y& d( a4 d' f# v  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 000 {' B7 m2 B) W1 O) ]* M& A& x7 m5 |
  Class:                             ELF64( \. i. T5 H) L& y/ m6 O
  Data:                              2's complement, little endian  M1 M' h% s: H- U7 ~
  Version:                           1 (current)+ d3 B8 Z/ R; }. p$ N: P) b
  OS/ABI:                            UNIX - System V( U0 s5 l  [# |* L# z# ]- H3 g
  ABI Version:                       0& T( W( ]" d4 O/ x6 k' N7 I
  Type:                              REL (Relocatable file): b9 X5 J& m7 _+ w- S8 W" N
  Machine:                           <unknown>: 0xb74 e& _9 j+ o+ x  U
  Version:                           0x1
% \/ P& G1 A) ?  Entry point address:               0x0
8 p6 ]! k7 j: R: D) ~, P8 M. r  U  Start of program headers:          0 (bytes into file)) f, \- N6 I9 V1 ?5 l* R
  Start of section headers:          161192 (bytes into file)+ s+ R/ _: `/ ^- ^
  Flags:                             0x0
+ M6 u0 ?) t. r  Size of this header:               64 (bytes)9 k( E# o; V3 r! v1 A2 Y- v
  Size of program headers:           0 (bytes)+ ^1 X7 d) [# I( g. G0 ^2 q' Z
  Number of program headers:         0
0 N5 B$ N, w2 g( s! o6 s! C  Size of section headers:           64 (bytes)# s6 s  P3 S0 ^
  Number of section headers:         29/ V) T! M' B# P( O1 N
  Section header string table index: 24
% }& ]& x. e5 f: v; m- N果然,这个库显示是64位的,为了兼容32位的,只能修改Makefile,判断到32位时,使用32位的库。
/ P3 s7 A# q8 q- _; b+ifeq ($(LICHEE_ARCH),arm64)
0 k" X' a4 m7 c: H( g* O9 d5 U8 l        cp libschw libschw.a. g  d) \4 K- R, V
+else6 E) y( T! l# Q$ {2 A) K& s' v
+       cp libschw32 libschw.a8 S$ e( y# _1 B; |5 {+ f/ E
+endif3 ]6 T, ]1 J7 d2 c
重新弄一份新32位的libschw32库后,重新编译,问题解决。
) G; T# W4 P( E! L  I' M4 z( [

该用户从未签到

2#
发表于 2020-4-16 18:58 | 只看该作者
could not read symbols: File format not recognized
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 23:05 , Processed in 0.156250 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表