English

Bug: Runtime error when running ArcGIS Engine C++ samples on SUSE

Description

When using Linux-SUSE to run any ArcGIS Engine C++ samples, the following error message appears at the command prompt:

"Could not open libarcsdk_rt.so: libelf.so.1: cannot open shared object
file: No such file or directory
Could not open libarcsdk_rt.so: libelf.so.1: cannot open shared object
file: No such file or directory
Could not open libarcsdk_rt.so: libelf.so.1: cannot open shared object
file: No such file or directory
Segmentation fault"

Cause

There are two implementations of libelf available for Linux: libelf.so.0 and libelf.so.1. Redhat distribution usually ships libelf.so.1 and non-Redhat distribution usually ships libelf.so.0. ESRI samples are built on top of the libelf.so.1 version. Therefore, running the sample code causes the compiler to complain that dependencies are not found.

Workaround

Follow the steps below.

  1. Use the objdump command to find out the dependencies.

    Code:
    objdump -x $ARCENGINEHOME/bin/libarcsdk_rt.so

    The prompt replies 'NEEDED libelf.so.1', which means that libarcsdk_rt.so is linked to libelf.so.1 when the library is built.
  2. Create a symbolic link that points to libelf.so.1.
    Code:
    $ ln -s libelf.so.0 libelf.so.1