带有 Qt 的 SQLite 数据库无法发布可执行文件
Posted
技术标签:
【中文标题】带有 Qt 的 SQLite 数据库无法发布可执行文件【英文标题】:SQLite database with Qt fails for Release executable 【发布时间】:2022-01-01 01:14:47 【问题描述】:我在调试版本(在 Qt Creator 中加载)和发布版本中都有此代码。使用 Qt Creator 时,数据库似乎可以毫无问题地打开,但在运行发布可执行文件时会失败。我已经将一些丢失的 .dll 文件从 Qt bin 文件夹复制到了发布文件夹,以使应用程序在没有“丢失 .dll”错误的情况下加载,但似乎 QSql 可能缺少其他一些先决条件?
#ifndef LOGIN_H
#define LOGIN_H
#include <QMainWindow>
#include <QtSql>
#include <QtDebug>
#include <QFileInfo>
QT_BEGIN_NAMESPACE
namespace Ui class login;
QT_END_NAMESPACE
class login : public QMainWindow
Q_OBJECT
public:
QSqlDatabase EPMS_db;
void connClose()
EPMS_db.close();
EPMS_db.removeDatabase(QSqlDatabase::defaultConnection);
bool connOpen()
EPMS_db = QSqlDatabase::addDatabase("QSQLITE");
EPMS_db.setDatabaseName("C:/SQLite/EPMS_1.db");
if (!EPMS_db.open())
qDebug()<<("Database failed to connect");
return false;
else
qDebug()<<("Database connected successfully");
return true;
public:
login(QWidget *parent = nullptr);
~login();
private slots:
void on_pushButton_clicked();
private:
Ui::login *ui;
;
#endif // LOGIN_H
【问题讨论】:
您的 login.cpp 看起来如何? 【参考方案1】:已解决:将 plugins/sqldrivers 文件夹复制到包含发布可执行程序的同一文件夹中。
【讨论】:
以上是关于带有 Qt 的 SQLite 数据库无法发布可执行文件的主要内容,如果未能解决你的问题,请参考以下文章