我试图在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。两个缺少的依赖项:
似乎在这些步骤之后,我的努力将变得不那么有组织“只是试一试......”。
答案 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