我在opensuse 11.1上用软件管理器装了这些东西:
libqt4-devel - Qt Development
Kitlibqt4-sql-unixODBC - Qt 4 unixODBC plugin
unixODBC-devel - Includes and Static Libraries for ODBC Development
unixODBC - ODBC
driver manager with some drivers included
也就是qt4.4.3的开发环境和unixodbc、libqsqlodbc.so都有了
我不想使用unixodbc的DSN,一个是安全问题,另一个是软件安装时还得要求用户配置数据源,麻烦。
再一个我想如果我在QSqsDatabase::addDatabase(QSqlDriverCreator<QODBCDriver>)或QSqsDatabase::addDatabase(new QODBCDriver())。这样不需要unixodbc了,因为libqsalodbc.so 就是个odbc的驱动。但是这句
编译通不过,说什么undefined reference。于是我又想静态连接qt的odbc驱动,但我的/usr/lib/qt4/plugins/sqldrivers下
没有静态的库,于是我就编译了一个。照文档里面的方法(Q_IMPORT_PLUGINS() in .cpp file and add LIBS += qsqlodbc),还是不行。
另外我在工程目录中也放了libqsqlodbc.a, libqsqlodbc.so, 子目录plugins和plugins/sqldrivers里面也都放了这两个文件。/usr/lib/qt4/plugins/sqldrivers也放了。还是不行。
QSqsDatabase::addDatabase("ODBC")就不用了吧?它会去odbcinst.ini odbc.ini里面寻找驱动,如果我改odbcinst.ini的话,那么用户也得改,还是麻烦。或者我在安装的时候用脚本改,但这样一来用户原来的配置和
数据库应用程序怎么办?万一因为我改了
配置文件它们运行不起来呢?所以我不要这个:addDatabase("ODBC");
linux下到底要怎样用libqsqlodbc.so?
[ 此贴被csoapy在2009-01-02 13:09重新编辑 ]