【发布时间】:2013-12-04 15:23:09
【问题描述】:
我正在尝试使用 PostgreSQL 的 QSqlDatabase hello world 应用程序。我的环境如下:Windows 7 64位,Qt 4.8.2,PostgreSQL 9.0.13。以下代码编译,但不会调试,即当我在 QSqlDatabase::drivers() 行上放置一个中断时,但代码以异常退出。当我注释掉这一行时,应用程序按预期运行。有什么建议吗?
#include <QApplication>
#include <QMainWindow>
#include <QtSql/QtSql>
#include <QtSql/QSqlDatabase>
int main(int argc, char *argv[])
{
QApplication prog(argc, argv);
QMainWindow *mainWin = new QMainWindow;
QStringList drvlst = QSqlDatabase::drivers(); // <-- problem!
mainWin->show();
return prog.exec();
}
【问题讨论】:
-
执行目录下有
QtSql4.dll吗? -
... 或
QtSql4d.dll如果您使用的是调试库。 -
不,我不知道。我在这些目录中有 qsqlpsql4.dll 和 qsqlpsqld4.dll。此外,在运行 Dependency Walker 时,它确实会在 qtsqld4.dll 上产生错误 - 特别是 ssleay32.dll、libeay32.dll 和 kernel32.dll。看起来像 x86 与 x64 的问题?
-
这是一个很好的。使用 Dependency Walker,我(或者我们,感谢 Noah)能够识别出 Qt 正在使用 libeay32.dll 的 openvpn“版本”,因为 PATH 环境变量中的这个目录引用位于列表的开头。将 openvpn 引用移动到 PATH 的末尾解决了这个问题。
-
把它作为答案然后关闭这个问题
标签: qt postgresql qt-creator qtsql