Я недавно обновил от 16,04 до 18,04 При попытке запустить qjack, я получаю эту ошибку
qjackctl: relocation error: /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5: symbol png_set_option version PNG16_0 not defined in file libpng16.so.16 with link time reference
Таким образом, я пытался переустановить qjack, весь qt5 lib и libpng16 lib напрасно. Таким образом, я имел более глубокий взгляд на libpng рассматриваемое и проверил символы.
readelf -Ws /usr/lib/x86_64-linux-gnu/libpng16.so.16 | grep png_set_option
84: 0000000000008e00 89 FUNC GLOBAL DEFAULT 13 png_set_option@@PNG16_0
Таким образом, png_set_option на самом деле определяется для PNG16_0 не так ли? Я действительно не знаю, что сделать для исправления этого.
Таким образом, я определил местоположение различных версий libpng16
locate libpng16.so.16
/home/julien/Software/Sen2Cor-2.4.0-Linux64/lib/libpng16.so.16
/home/julien/Software/Sen2Cor-2.4.0-Linux64/lib/libpng16.so.16.25.0
/home/julien/Software/VirtualGL/libpng-1.6.0/.libs/libpng16.so.16
/home/julien/Software/VirtualGL/libpng-1.6.0/.libs/libpng16.so.16.0.0
/opt/ardour4/lib/libpng16.so.16
/usr/lib/i386-linux-gnu/libpng16.so.16
/usr/lib/i386-linux-gnu/libpng16.so.16.34.0
/usr/lib/x86_64-linux-gnu/libpng16.so.16
/usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0
/usr/local/lib/libpng16.so.16
/usr/local/lib/libpng16.so.16.0.0
/usr/local/lib/libpng16.so.16.34.0
/usr/local/lib.bak/libpng16.so.16
/usr/local/lib.bak/libpng16.so.16.0.0
/usr/local/lib.bak/libpng16.so.16.34.0
Я пытался найти lib, который не имел правильного символа
/usr/lib/x86_64-linux-gnu$ nm -D /usr/lib/x86_64-linux-gnu/libpng16.so.16 | grep png_set_option
0000000000008e00 T png_set_option
Это ничего не возвращает (символ отсутствует),
nm -D /usr/local/lib/libpng16.so.16 | grep png_set_option
Таким образом, я сделал символьную ссылку из плохого lib/usr/local/lib/libpng16.so.16 к хорошему/usr/lib/x86_64-linux-gnu/libpng16.so.16
sudo ln -sf /usr/local/lib/libpng16.so.16 /usr/lib/x86_64-linux-gnu/libpng16.so.16
Надеюсь эта справка, к сожалению, это может быть повреждено при обновлении. Не забывайте копировать/usr/local/lib/прежде в случае, если Вы повреждаете его
sudo cp -R /usr/local/lib /usr/local/lib.bak
Это решение вдохновлено этим сообщением