QT - PostgreSQL插件错误

QT - PostgreSQL plugin error

本文关键字:错误 插件 PostgreSQL QT      更新时间:2023-10-16

我有一个应用程序,应该连接到数据库。在linux下我没有问题,但在windows下->我必须添加到系统"路径"的地方,QT环境被放置(C:/QT/Tools/QTCreator/bin),否则它不工作,并显示如下错误。如果我将exe文件也放在pendrive上,Id将不起作用

我想把这个应用程序发送给我的朋友,谁不应该安装QT环境,只是运行这个应用程序。

文件在我的驱动器上

/app.exe插件(dir)-qsqlpsql.dll-sqldrivers (dir)——qsqlpsql.dll

我该怎么办?我错在哪里了?

支持文件:

QT       += core gui sql
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = NZP
TEMPLATE = app

SOURCES += main.cpp
        mainwindow.cpp
HEADERS  += mainwindow.h
FORMS    += mainwindow.ui
win32{
LIBS += -L"C:/Program Files/psqlODBC/0903/bin"
}
RC_FILE += Info.rc

in my main.cpp:

QApplication a(argc, argv);
   qDebug()<<QCoreApplication::applicationDirPath();
   a.addLibraryPath(QCoreApplication::applicationDirPath());
   a.addLibraryPath(QCoreApplication::applicationDirPath()+"/plugins");
   qDebug()<<a.libraryPaths();
    MainWindow w;
    w.show();
    return a.exec(); 

如果我在windows下运行这个应用程序,在那里我安装了QT - everythink是正确的,但如果我把它移动到pendrive或在没有QT框架的机器下运行-我变成错误:

QSqlDatabase: QPSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC QPSQL QPSQL7

打开数据库连接失败。指定的驱动程序无效。

我在网上找过了,但到目前为止还没有合理的解决方案的帮助!

哎呀!我找到问题了!

1。您的安装目标文件夹结构如下:

yourap.exe
-plugins -> folder
--sqldrivers -> folder
and you have to copy from migws/bin  not QT/Tools/Creator/bin! 
---qsqlpsql.dll
app目录下的

你必须复制

libeay32.dll

与你在:

C:Program FilespsqlODBC903bin (http://www.postgresql.org/ftp/odbc/versions/msi/   - ii used https://ftp.postgresql.org/pub/odbc/versions/msi/psqlodbc_09_03_0300.zip)

在你的应用(main.cpp)中,只需添加path:

QApplication a(argc, argv);
a.addLibraryPath(QCoreApplication::applicationDirPath()+"/plugins/");
a.addLibraryPath(QCoreApplication::applicationDirPath());