Why do I get error "libodbc.a(odbc.so) could not be loaded"?

The actual error reported to us was:

0509-150 Dependent module
/usr/local/easysoft/unixODBC/lib/libodbc.a(odbc.so) could not be loaded.

and this is an AIX-specific issue.

At various stages in unixODBC's history, libtool (used to create unixODBC shared objects) has created:

Applications linked against the library are dependent on the name of the archive (libodbc.a) and the name of the object inside it. For example, running dump -H on unixODBC's isql might display:

INDEX  PATH                          BASE                MEMBER
3                                    libodbc.a           libodbc.so.1

Applications such as Informatica, UniVerse, and UniData have a dependency on libodbc.a(odbc.so). To ensure isql (and any other applications built against unixODBC) continue to function alongside Informatica, UniVerse, UniData, and so on, you need to extract the current object from libodbc.a, rename it, and then add it back to the archive. For example:

$ cd /usr/local/easysoft/unixODBC/lib
$ ar -X32_64 -tv libodbc.a
rwxr-xr-x   201/1     698963 Oct 04 11:21 2004 libodbc.so.1
$ ar -X32_64 -xv libodbc.a
x - libodbc.so.1
$ mv libodbc.so.1 odbc.so
$ ar -X32_64 -rv libodbc.a odbc.so
a - odbc.so