• 7233阅读
  • 3回复

急:如何在linux下使用libqsalodbc.so插件? [复制链接]

上一主题 下一主题
离线csoapy
 

只看楼主 正序阅读 楼主  发表于: 2009-01-02
— 本帖被 XChinux 执行加亮操作(2009-01-02) —
我在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重新编辑 ]
离线csoapy

只看该作者 3楼 发表于: 2009-01-03
引用第2楼XChinux于2009-01-02 15:13发表的  :
除了自身的依赖,就是Qt中使用插件注意事项了。


你是说关于插件目录的设置?这个我知道,还有没有其它需要注意的?是不是在.pro里面再加个QTPlugin+= qsqlodbc?还有别的吗?
离线XChinux

只看该作者 2楼 发表于: 2009-01-02
除了自身的依赖,就是Qt中使用插件注意事项了。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线csoapy

只看该作者 1楼 发表于: 2009-01-02
刚才看了下libqsqlodbc.so 的依赖关系,它需要unixodbc中的libodbc.so,也就是它不是个独立的odbc驱动,我还得配置unixodbc
快速回复
限100 字节
 
上一个 下一个