1. 程式人生 > 其它 >/lib/libgcc_s.so.1: version `GCC_3.5'

/lib/libgcc_s.so.1: version `GCC_3.5'

 

root@zedboard-zynq7:~# /usr/xenomai/demo/altency 
/usr/xenomai/demo/altency: /lib/libgcc_s.so.1: version `GCC_3.5' not found (required by /usr/xenomai/demo/altency)
/usr/xenomai/demo/altency: /lib/libgcc_s.so.1: version `GCC_3.5' not found (required by /usr/xenomai/lib/libalchemy.so.0)
/usr/xenomai/demo/altency: /lib/libgcc_s.so.1
: version `GCC_3.5' not found (required by /usr/xenomai/lib/libcopperplate.so.0) /usr/xenomai/demo/altency: /lib/libgcc_s.so.1: version `GCC_3.5' not found (required by /usr/xenomai/lib/libcobalt.so.2) /usr/xenomai/demo/altency: /lib/libgcc_s.so.1: version `GCC_3.5' not found (required by /usr/xenomai/lib/libmodechk.so.0)

 

 從交叉編譯工具鏈拷貝 scp /usr/arm-linux-gnueabihf/lib/libgcc_s.so.1 [email protected]:~

root@zedboard-zynq7:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 0e:b0:ba:5e:ba:12 brd ff:ff:ff:ff:ff:ff inet 10.11.11.83/24 scope global eth0 valid_lft forever preferred_lft forever 3: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1 link/ipip 0.0.0.0 brd 0.0.0.0 root@zedboard-zynq7:~# ls libgcc_s.so.1 root@zedboard-zynq7:~#

 

root@zedboard-zynq7:~# cp libgcc_s.so.1 /lib/ 
root@zedboard-zynq7:~# /usr/xenomai/demo/altency 
   0"000.000| BUG in __xenomai_init(): [main] running non-SMP libraries on SMP kernel?
              build with --enable-smp or disable check with --no-sanity

 

libgcc是什麼

這是gcc官方的解釋,https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html ,這裡有箇中文版http://gccint.cding.org/Libgcc.html,最明顯的看到了整型和浮點數的轉換,而產品平臺正好是軟浮點

libgcc的靜態庫是libgcc.a,動態庫是libgcc_s.so.1(libgcc_s.so指向libgcc_s.so.1)。

libgcc是GCC提供的一個低層執行時庫,當一些操作/運算在特定平臺上不支援時,GCC會自動生成對這些庫函式的呼叫,使用這些庫函式來模擬實現。從概念上和原始碼實現中,又可以分為libgcc1和libgcc2,雖然它們最終會被編譯合併為libgcc.a。

From《libgcc1和libgcc2的區別》

是否需要libgcc_s.so.1

搜尋到下面一個資訊 https://wiki.osdev.org/Libgcc

All code compiled with GCC must be linked with libgcc.

[root@centos7 glibc]# rpm -qlp libgcc-12.0.1-0.14.fc36.armv7hl.rpm 
warning: libgcc-12.0.1-0.14.fc36.armv7hl.rpm: Header V4 RSA/SHA256 Signature, key ID 38ab71f4: NOKEY
/lib/libgcc_s-12-20220401.so.1
/lib/libgcc_s.so.1
/usr/lib/.build-id
/usr/lib/.build-id/b7
/usr/lib/.build-id/b7/db0eb9e1ff45a0d769b266513dc956eaf1c0d9
/usr/share/licenses/libgcc
/usr/share/licenses/libgcc/COPYING
/usr/share/licenses/libgcc/COPYING.LIB
/usr/share/licenses/libgcc/COPYING.RUNTIME
/usr/share/licenses/libgcc/COPYING3
/usr/share/licenses/libgcc/COPYING3.LIB
[root@centos7 glibc]#