After installing the ElektronSDK version 1.0.6 on linux and linking an executable using the shared libraries, the resulting image cannot find the referenced .so files.
The missing .so files are NOT due to an improperly set LD_LIBRARY_PATH nor a missing R[UN]PATH set in the executable.
The problem is due to the .so files having been created with -Wl,soname
The link line uses the names of the files located in the
Linking with the parameters:
Results in the successful completion of the link and the resolution of all the symbols.
attempting to run the resulting image howver references .so files NOT specified in the link:
librssl.so.6, librsslVA.so.7, and librsslVACache.so.2
This is because the .so files were created with a parameter to the linker that instructed it to override the filename of the .so and use an internally stored name (SONAME) in the executable produced by the linker.
To correct the problem, symbolic links need to be generated for the SONAME to the file name on the disk e.g.
ln -s librssl-eta3.0.2.L1.so librssl.so.6
Further, a version independent name should be generated to that the link line is not tied to a particular executable version:
ln -s librssl.so.6 librssl.so
This would allow linking with simply:
-llibrssl -llibrsslVA -llibrsslVACache
It's possible that these links were created when the version was built but the craetion of the archive for distribution excluded files that were symbolic links