为什么找不到版本“ GLIBCXX_3.4.28”/ usr / lib / libQt5Widgets.so.5要求

问题描述

我正在尝试在manjaro linux上运行following code。但是当我用以下命令启动服务器时:

 python3 darknet_server.py 

它报告

Traceback (most recent call last):
  File "darknet_server.py",line 342,in <module>
    main()
  File "darknet_server.py",line 328,in main
    datafilepath=datafilepath.encode(),File "/home/vfbsilva/Source/darknet_alexey/darknet/pythons/darknet.py",line 120,in __init__
    self.lib = CDLL(self.libfilepath,RTLD_GLOBAL)
  File "/home/vfbsilva/Programas/anaconda3/envs/darknet376/lib/python3.7/ctypes/__init__.py",line 364,in __init__
    self._handle = _dlopen(self._name,mode)
OSError: /home/vfbsilva/Programas/anaconda3/envs/darknet376/lib/python3.7/site-packages/../../libstdc++.so.6: version `GLIBCXX_3.4.28' not found (required by /usr/lib/libQt5Widgets.so.5)

但是

pacman -Qo /lib/libstdc++.so.6
/usr/lib/libstdc++.so.6 pertence a gcc-libs 10.2.0-2

显示libstdc ++。so.6已安装。我该怎么办?

解决方法

darknet376带有自己的过时的libstdc++.so.6副本,该副本将覆盖系统版本(由于LD_LIBRARY_PATH或某些RPATHRUN_PATH的设置直接在ELF .so文件中)。

您应该能够通过简单地删除libstdc++.so.6文件(darknet376目录树中的文件,而不是/lib中的系统版本)来解决此问题,因为系统版本为足够新,因此运行该软件可能不需要捆绑版本。