Ubuntu18.04 に mysql をインストールし、QT を使用してドライバーを正常にコンパイルする方法

開発環境:Ubuntu18.04+QT5.14.2+MySQL5.7.240

コンパイル手順:

1. mysql ソフトウェアとドライバーをインストールします。

ターミナル コマンドを開き、次のようにインストール ステートメントを実行します。
sudo apt-get install mysql-server
sudo apt-get install mysql-クライアント sudo apt-get install libmysqlclient-dev
sudo apt-get install libmysql++

 2. インストールされたパスをクエリします。

ここでmysql.hは

3. QT インストール ディレクトリ内のプロジェクト ファイルのアクセス権限を設定する方法
sudo chmod -R 777 /opt/Qt5.14.2/5.14.2/Src/qtbase/src / plugins/sqldrivers
sudo chmod -R 777 /opt/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql/mysql.pro
sudo chmod -R 777 /opt/Qt5.14.2/5.14.2/gcc_64
sudo chmod -R 777 /opt/Qt5.14.2/Tools/QtCreator

4. ターミナル コマンド ウィンドウで、「sudo /opt/Qt5.14.2/Tools/QtCreator/bin/qtcreator」と入力し、Enter キーを押して、管理者権限で QtCreator ソフトウェアを開きます。

 

5. QtCreator ソフトウェアで、mysql project/opt/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql/mysql.pro プロジェクト ファイルを開きます。

6. mysql.pro ファイルの内容を
TARGET = qsqlmysql に変更します。

ヘッダー += $$PWD/qsql_mysql_p.h
ソース += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

# QMAKE_USE += mysql

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)

INCLUDEPATH+=/usr/include/mysql
LIBS+=-L/usr/lib/x86_64-linux-gnu/ -lmysqlclient
DESTDIR = ./x86_64-linux-gnu/lib

7. qsqldriverbase.pri ファイルの内容を
QT = core core-private sql-private に変更します。

# 親プロジェクトの QMAKE_USE の場合。
# include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include (./configure.pri)

PLUGIN_TYPE = sqldrivers
load(qt_plugin)

DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII

 8. mysql.pro プロジェクトをリリース モードでコンパイルして実行すると、/opt/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql/Release/x86_64-linux- に生成されます。 gnu/lib ディレクトリ 対応するドライバー ファイル: libqsqlmysql.so、libqsqlmysql.so.debug。 2 つのドライバー ファイルを /opt/Qt5.14.2/5.14.2/gcc_64/plugins/sqldrivers ディレクトリにコピーします。

 9. 新しいテスト QT プロジェクトを作成した後、MYSQL データベース接続をテストします。テスト コードは次のとおりです。

#include <QApplication>
#include <QSqlDatabase>
#include <QDebug>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    // 查看数据库驱动名字
    qDebug()<<QSqlDatabase::drivers();
    // 加载驱动mysql数据库驱动
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    //本机数据库
    db.setHostName("192.168.1.200");
    db.setUserName("root");
    db.setPassword("123456");
    db.setDatabaseName("test");
    db.setPort(3306);
    if(!db.open())
    {
        qDebug()<< "服务器连接失败,请稍后重新尝试";
    }
    else
    {
        qDebug()<< "服务器连接成功,进行后续数据库增删改查操作";
    }
    // 关闭数据库
    db.close();
    return a.exec();
}

おすすめ

転載: blog.csdn.net/xqf222/article/details/128660092