Qt QPSQL驱动程序未加载

时间:2013-09-08 10:33:16

标签: qt

我试图在qt上加载psql而没有成功。我的代码:

QApplication a(argc, argv);
QSqlDatabase::addDatabase("QPSQL");
MainWindow w;
w.show();
return a.exec();

我启用了QT_DEBUG_PLUGINS。输出是:

  

“插件'C:/Qt/5.1.1/mingw48_32/plugins/sqldrivers/qsqlpsql.dll'使用不兼容的Qt库。(不能混合调试和发布库。)”            不是插件   QFactoryLoader :: QFactoryLoader()查看“C:/Qt/5.1.1/mingw48_32/plugins/sqldrivers/qsqlpsqld.dll”   从插件元数据(“QPSQL7”,“QPSQL”)获得密钥   QFactoryLoader :: QFactoryLoader()检查目录路径“C:/ build-Hello-Desktop_Qt_5_1_1_MinGW_32bit-Debug / debug / sqldrivers”...   已加载的库“C:/Qt/5.1.1/mingw48_32/plugins/sqldrivers/qsqlpsqld.dll”   QLibraryPrivate :: loadPlugin在“C:/Qt/5.1.1/mingw48_32/plugins/sqldrivers/qsqlpsqld.dll”上失败:“无法加载库C:/Qt/5.1.1/mingw48_32/plugins/sqldrivers/qsqlpsqld.dll:指定的模块无法找到。”   QSqlDatabase:未加载QPSQL驱动程序   QSqlDatabase:可用的驱动程序:QSQLITE QODBC QODBC3 QPSQL QPSQL7

我的配置:

- Windows 7 Enterprise
- Qt Creator 2.8.1
- Qt 5.1.1
- Postgre 9.2
- C:\PostgreSQL\9.2\bin; C:\PostgreSQL\9.2\lib added to PATH

我已经为libpg.dll运行了依赖性walker。两个缺少的依赖项:

  • GPSVC.DLL
  • IESHIMS.DLL

似乎在这些步骤之后,我的努力将变得不那么有组织“只是试一试......”。

3 个答案:

答案 0 :(得分:1)

第一条错误消息或多或少地告诉了所有内容:

  

插件'C:/Qt/5.1.1/mingw48_32/plugins/sqldrivers/qsqlpsql.dll'   使用不兼容的Qt库。 (不能混合调试和发布   库)。“

我认为你的程序是在调试模式下编译的,但你缺少Qt插件,它们在调试模式下编译。这是怎么回事,因为你说你用的是现成的包装......不知道。

尝试在发布模式下编译您的程序。在.pro:CONFIG+=release

答案 1 :(得分:1)

有同样的问题。 通常情况下,您使用的是32位Qt和64位Postgresql。 我下载了32位postgresql,将路径(在Qt创建者中)更改为32位postgre库,一切都运行良好。

使用: Qt 5.2.0,32bit(来自SDK) PostgreSQL 9.3(x86)

答案 2 :(得分:0)

尝试重新编译PostgreSQl dll