簡體   English   中英

QT-PostgreSQL插件錯誤

[英]QT - PostgreSQL plugin error

我有一個應用程序,應該連接到數據庫。 在Linux下,我沒有問題,但是在Windows下->我必須添加到系統“ Path”位置,並放置QT環境(C:/ QT / Tools / QTCreator / bin),否則它將不起作用並顯示錯誤如下。 如果我也將exe文件放在pendrive上,則id無法正常工作

我想將此應用程序發送給我的朋友,他們不應該安裝QT環境並僅運行此應用程序。

Pendrive上的目錄

/ 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

在我的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(); 

如果我在安裝QT的Windows下運行此應用程序-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

在您的應用程序目錄中,您必須復制

libeay32.dll

與您一起位於:

C:\Program Files\psqlODBC\0903\bin (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)中,只需添加路徑:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM