Why is version `GLIBCXX_3.4.28' not found (required by /usr/lib/libQt5Widgets.so.5)

842 views Asked by At

Folks I'm trying to run the following code on manjaro linux. But as I start the server with:

 python3 darknet_server.py 

It reports

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)

But

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

Shows libstdc++.so.6 as installed. What can I do?

1

There are 1 answers

1
Florian Weimer On BEST ANSWER

darknet376 comes with its own, outdated copy of libstdc++.so.6, which overrides the system version (either due to LD_LIBRARY_PATH or some RPATH or RUN_PATH setting directly in an ELF .so file).

You should be able to work around this by simply deleting the libstdc++.so.6 file (the one in the darknet376 directory tree, not the system version in /lib) because the system version is sufficiently new, so the bundled version is probably not required for running this software.