Sean Davis <sdavis2@mail.nih.gov> writes:
> I'm trying to compile psqlodbc-08.02.0200 for Mac OS. I'm getting the
> following when I try to do that:
> gcc -o .libs/psqlodbcw.so -bundle .libs/info.o .libs/bind.o
> .libs/columninfo.o .libs/connection.o .libs/convert.o .libs/drvconn.o
> .libs/environ.o .libs/execute.o .libs/lobj.o .libs/win_md5.o
> .libs/misc.o .libs/options.o .libs/pgtypes.o .libs/psqlodbc.o
> .libs/qresult.o .libs/results.o .libs/socket.o .libs/parse.o
> .libs/statement.o .libs/tuple.o .libs/dlg_specific.o .libs/loadlib.o
> .libs/multibyte.o .libs/odbcapi.o .libs/descriptor.o .libs/odbcapi30.o
> .libs/pgapi30.o .libs/info30.o .libs/mylog.o .libs/odbcapi30w.o
> .libs/odbcapiw.o .libs/win_unicode.o -L/Users/sdavis/local/pgsql/lib
> -lpgport -lz -lreadline -lresolv -ldl -lm -lpq
> /usr/bin/ld: Undefined symbols:
> _CONNLOCK_ACQUIRE
> _CONNLOCK_RELEASE
> _INIT_CONNLOCK
> _SSL_get_error
> _SSL_read
> _SSL_write
> _SQLGetPrivateProfileString
> _SQLWritePrivateProfileString
> collect2: ld returned 1 exit status
> make[1]: *** [psqlodbcw.la] Error 1
Darwin is pickier than most other OSes about requiring that all symbols
referenced by a shared library be defined in one or another of the
shared libraries listed when it's linked. In this case the link command
is clearly missing a -l switch for OpenSSL, and probably a couple other
things. ODBC guys, can you fix this?
regards, tom lane