Informix Error -1281: Library API incompatibility found in libos.so.
Cause and resolution
Library API incompatibility found in libos.so.
The libos.so shared library compiled with your client application is incompatible with the version in the $INFORMIXDIR/lib directory. Recompile your application with INFORMIXDIR set to the path of the new libos.so shared library.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-1281 fires when the libos.so shared library the client application was compiled against is
incompatible with the version present in $INFORMIXDIR/lib — per the official guidance, this is
the same class of build/link-time version mismatch as -1280, for a different shared library.
- The application compiled against a different
libos.soversion than the one currently installed under$INFORMIXDIR/lib, per the official guidance — the direct, only cause.
Solutions / Resolution
- Recompile the application with
INFORMIXDIRset to the path of the newlibos.soshared library, per the official guidance.
Examples
Recompiling against the correct library
$ export INFORMIXDIR=/opt/informix
$ make clean && make
Diagnostic Checks
- Check which
libos.soversion the application was originally compiled against, versus the version currently under$INFORMIXDIR/lib, and recompile if they differ.
Related Errors / Related Topics
- -1280 — "Library API incompatibility found in libgen.so." Same class of library-version
mismatch, for
libgen.so. - -1282 — "Library API incompatibility found in libsql.so." Same class of library-version
mismatch, for
libsql.so. - -1283 — "Library API incompatibility found in libgls.so." Same class of library-version
mismatch, for
libgls.so.
The application's libos.so doesn't match the version under $INFORMIXDIR/lib — recompile
against the correct INFORMIXDIR.