AppImage : When deployed in another system , does it use the .so files which is bundled in it ..or the ones present in distributed system?

I am creating a .appimage in my system for an application which uses libraries from openvino…When deploying that on another system…it gives me symbol lookup error in opencv Mat() function…

The distributed system has openvino installed but it is a older version than what I used…So when running…the AppImage or AppRun from AppDir folder uses the opencv libraries from the system(which is older one)

Do…AppImage always prefer system libraries first…and comes to bundled libraries if they are not present in system

Error is

./Check-Video-x86_64.AppImage 
./Check-Video-x86_64.AppImage: symbol lookup error: ./Check-Video-x86_64.AppImage: undefined symbol: _ZN2cv3MatC1Ev

Any insights about appImage library preferences and solving the error is welcomed

Thanks in advance

“AppImage” prefers nothing.
It’s all up to what the AppRun script or binary inside the AppImage does. But generally speaking, it makes sense to prefer the libraries in the AppImage over those on the system, because those on the system can be too old.

undefined symbol: _ZN2cv3MatC1Ev

Possibly this happens because the author of Check-Video-x86_64.AppImage was using a system that is newer than the system you are trying to run the AppImage on.