[Qgis-developer] SQL Anywhere Library conflict

Dave.DeHaan at sybase.com Dave.DeHaan at sybase.com
Fri Jan 7 11:26:30 EST 2011

Hi Tim,

When I installed my linux QGIS build environment it was on a machine with
SA12 already installed, so when I encountered these build errors I thought
it was a problem with the GDAL configuration and didn't recognize it was a
library conflict.  My solution at the time was to append the full path to
libodbcinst (/usr/lib/libodbcinst.so) to the CMake variable GDAL_LIBRARY.

However, a better solution is to delete libodbcinst.so and libodbcinst.so.1
from the lib{32,64} directory your SQLA installation.  These are simply
soft-links to our implementation of the ODBC ini parser, provided as a
convenience to SQLA app developers.  Deleting these soft-links should not
cause any problems.

Best regards,

David E. DeHaan
Query Processing team
Sybase iAnywhere

  From:       Tim Sutton <lists at linfiniti.com>                                                               
  To:         qgis-developer <qgis-developer at lists.osgeo.org>                                                
  Date:       12/28/2010 04:49 PM                                                                            
  Subject:    [Qgis-developer] SQL Anywhere Library conflict                                                 
  Sent by:    <qgis-developer-bounces at lists.osgeo.org>                                                       

Hi Dave (and others interested in SQL Anywhere)

I cam across a problem with linking QGIS libs where I would get the
following error messages:

Linking CXX executable qgis
undefined reference to `SQLInstallDriverEx'
undefined reference to `SQLRemoveDriver'
undefined reference to `SQLInstallerError'
collect2: ld returned 1 exit status
make[2]: *** [src/app/qgis] Error 1
make[1]: *** [src/app/CMakeFiles/qgis.dir/all] Error 2
make: *** [all] Error 2

After quite a bit of poking around I realised that there was probably
a conflict introduced by my recent SQLAnywhere install.

I commented out the line I added to my ~/.bashrc for SQL Anywhere:

# Added by Tim for sql anywhere support
#source /opt/sqlanywhere12/bin64/sa_config.sh

And then started a new shell, after which the QGIS libs linked
properly. I believe this is due the the libodbc shipped with SQL
Anywhere conflicting with my system lib.

So with that background, is there any elegant way to deal with this? I
guess the stock answer will be that typical users wont be compiling
QGIS so probably won't run into this - though I don't know if there
will be runtime issues introduced by this. Any thoughts? How do you
have your compilation environment set up?


Tim Sutton - QGIS Project Steering Committee Member (Release  Manager)
Please do not email me off-list with technical
support questions. Using the lists will gain
more exposure for your issues and the knowledge
surrounding your issue will be shared with all.

Visit http://linfiniti.com to find out about:
 * QGIS programming and support services
 * Mapserver and PostGIS based hosting plans
 * FOSS Consulting Services
Skype: timlinux
Irc: timlinux on #qgis at freenode.net
Qgis-developer mailing list
Qgis-developer at lists.osgeo.org

More information about the Qgis-developer mailing list