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

could not read symbols: File format not recognized

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

! ?$ j8 k: u" Q! I) {1 ]  PARM-linux-gnueabi-readelf工具解决问题% O. s2 ]) F4 {1 p7 W! @+ |
编译一个32位平台的内核时,出现如下错误提示:0 l  b: \1 }8 x' H

" H- S4 M& o& Y& a& nlibschw.a: could not read symbols: File format not recognized3 c( d2 p! s8 L! B' F
5 S$ v- v* s8 p# z4 E; ~6 s
于是进入相应的目录发现,libschw.a这个文件是存在的,但是为啥编译不过呢,同样的编译在另外一个64位平台却没有这个报错。2 z4 y' ]& o4 T" [7 T/ F

, C! d5 L, B: s7 W) R/ P思路:是否与32位64位平台有关?
5 E' v: G! }6 Z2 s3 S使用readelf来查看一下这个库,7 J2 c7 y# K# Q& W. h9 N
$ arm-linux-gnueabi-readelf -h modules/aw_schw/libschw" y: r" c0 m. {
File: modules/aw_schw/libschw(aw_schw_lib.o)
, I! U+ o# e% s$ U: T  }' iELF Header:
, @0 E' G% Z/ K( H  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
6 ^& y, }$ \2 K2 d  Class:                             ELF64
- F+ |- A" C4 O, Z- l7 b$ w( |  Data:                              2's complement, little endian! \4 P- }6 \5 [/ E/ N5 Z
  Version:                           1 (current)
+ z4 P! P" R0 Z6 ?" e1 O- |  OS/ABI:                            UNIX - System V
) g. p( }' B% Q0 c* ~& \  ABI Version:                       0
( b2 L4 ]6 T7 }3 j  Type:                              REL (Relocatable file)) N7 S9 G! S# ?0 x
  Machine:                           <unknown>: 0xb7- }; U; Y6 h4 ?6 ~/ q% E4 C
  Version:                           0x19 K4 o0 m- X2 Z! b( J0 e
  Entry point address:               0x05 a# A+ }, e. R" l; t, `
  Start of program headers:          0 (bytes into file)
% B; U9 s: f) Y' G0 p2 U* n  Start of section headers:          161192 (bytes into file)' ]; x" @/ H7 B1 j5 y& J/ x
  Flags:                             0x04 i/ u: w) z/ O3 }
  Size of this header:               64 (bytes)4 `/ G+ a2 Q8 e( K3 @+ P
  Size of program headers:           0 (bytes)
0 y. Z% v; O, E) ?9 F  Number of program headers:         0
  }/ S; P! Z2 S  Size of section headers:           64 (bytes). C' O; G# r+ b
  Number of section headers:         29. [* Z+ F0 u7 F: F
  Section header string table index: 24% d* ~# U; {6 s! ?8 G7 Y8 H
果然,这个库显示是64位的,为了兼容32位的,只能修改Makefile,判断到32位时,使用32位的库。7 N8 E. |9 t  ?4 t% g
+ifeq ($(LICHEE_ARCH),arm64)! ^9 m( `' J: n3 n- _
        cp libschw libschw.a
0 D4 b- x7 h; B- q) W+else
9 \. P9 ]7 |+ u3 G, U, {" J+       cp libschw32 libschw.a
5 u: M) x; X3 M9 y6 g" ]5 Z+endif& S2 {, a- F, C/ ^
重新弄一份新32位的libschw32库后,重新编译,问题解决。" g+ ^( p8 R4 S7 V

该用户从未签到

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 16:42 , Processed in 0.281250 second(s), 24 queries , Gzip On.

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

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

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