puzzlepaint / cide

A fast, lightweight C/C++ IDE for Linux and Windows
BSD 3-Clause "New" or "Revised" License
50 stars 12 forks source link

Missing library #6

Open probonopd opened 4 years ago

probonopd commented 4 years ago

CIDE: error while loading shared libraries: libclang.so.10git: cannot open shared object file: No such file or directory

Please bundle this library in the AppImage.

Reference: https://github.com/AppImage/appimage.github.io/pull/2081

puzzlepaint commented 4 years ago

Thanks for the report. This library seems to be included already though. If I extract the AppImage with --appimage-extract, it is in the /usr/lib subfolder, where many other libraries are as well. I don't really see the reason why this library in particular is an issue.

The AppImage also "works for me" on a system where I think that no git-based version of libclang should be installed.

probonopd commented 4 years ago

Thanks, can you test on a Ubuntu 16.04 Live ISO?

puzzlepaint commented 4 years ago

Testing on an Ubuntu 16.04 live ISO resulted in:

CIDE: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by /tmp/[...]/libLLVMSupport.so.10git)

After extracting the AppImage contents and adding the libstdc++.so.6 to them from the system the AppImage was created on, the application ran successfully when invoking AppRun.

I did not include libstdc++.so.6 in the AppImage because of: https://github.com/AppImage/pkg2appimage/blob/master/excludelist

Which includes:

libstdc++.so.6
# Workaround for:
# usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

But it does seem to be required here? Or is there another solution?

probonopd commented 4 years ago

The error you got is because something inside the AppImage was compiled on a Linux system newer than Ubuntu xenial, or on a system that had pulled in newer compilers and libraries e.g., from a ppa.

Please build on a Ubuntu xenial system with no ppas added.

This way, the resulting AppImage will run on all still-supported Ubuntu releases (and other similar distributions).

Trying to work around the excludelist by manually adding libstdc++.so.6 can do way more harm than good if one doesn't exactly know all its implications. Trust me ;-)

puzzlepaint commented 4 years ago

or on a system that had pulled in newer compilers and libraries e.g., from a ppa

Ah, that seems likely to be the issue.

I plan to use a Dockerfile to easily compile an AppImage on a "clean" system for the next release, but I don't know when I will get to it.

probonopd commented 4 years ago

You could also use something like Travis CI, then you don't need to deal with Docker manually. Example: https://github.com/probonopd/linuxdeployqt#using-linuxdeployqt-with-travis-ci