Polybar jsoncpp cannot open shared object file

After an update of jsoncpp (1.8.4-1 -> 1.8.4-2), the library object file path that polybar looks for has changed filename.

polybar: error while loading shared libraries: libjsoncpp.so.19: cannot open shared object file: No such file or directory

After the update, the filename version suffix was bumped up, chaning it to libjsoncpp.so.20. This path is set when polybar is compiled, so re-compiling will make it work properly again.

I am using yaourt to handle my AUR packages, so I can trigger a compile and reinstall with

# yaourt -S polybar

If you think this is too much of an hassle to do, you can also just symlink the new file back to the old filename.

# ln -s /usr/lib/libjsoncpp.so.20 /usr/lib/libjsoncpp.so.19

There’s an issue filed in polybar upstream that discusses this issue in more detail.

Additionally, an issue regarding inconsistencies in .so file versioning during the build process of jsoncpp itself may be related.

References