我有一个应该连接到数据库的应用程序。 在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();
如果我在Windows下运行这个应用程序,我安装QT - everythink是正确的,但如果我在pendrive上移动它或在没有QT框架的机器下运行 - 我会变错:
QSqlDatabase: QPSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC QPSQL QPSQL7
无法打开数据库连接。指定的驱动程序无效。
我已经在互联网上看了,但现在没有合理的解决方案 帮助!
答案 0 :(得分:0)
唉!我发现了问题!
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 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());