QSqlDatabase hello world应用程序无法调试

时间:2013-12-04 15:23:10

标签: qt postgresql qt-creator qtsql

我正在使用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();
}

1 个答案:

答案 0 :(得分:0)

DLL地狱的另一个例子以及Dependency Walker如何成为诊断此类潜在错误的绝佳工具。同样,在这种情况下,链接器遍历PATH环境变量以查找QTSQLD4.DLL库依赖项。链接器找到了openVPN SSLEAY32.DLL(实际上是64位)而不是SSLEAY32.DLL的postgreSQL版本。将openVPN url移动到PATH环境变量的末尾解决了这个问题。