我已经浪费了大约6个小时的时间,试图让MySQL在使用网络上的各种指令后使用Qt.我现在想要切断手腕!
有没有人对如何在Qt中安装QMYSQL驱动程序有一个简单而详尽的解释?
我有Mac 10.6,我是初学者n00b.
我衷心感谢您的帮助!
萨纳.
当我执行grep时,我得到以下文件,所以这些只是为了踢,我将libqsqlmysql.dylib复制到所有文件夹中,但我仍然无法编译...我得到一个错误说 QSqlDatabase: QMYSQL driver not loaded
/Library/Application Support/DivX/QtPlugins/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/Assistant.app/Contents/PlugIns/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/Designer.app/Contents/PlugIns/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/Desktop/Qt/4.8.0/gcc/plugins/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/Desktop/Qt/4.8.0/gcc/plugins/sqldrivers/libqsqlite_debug.dylib
/Users/pfn368/QtSDK/Desktop/Qt/474/gcc/plugins/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/Desktop/Qt/474/gcc/plugins/sqldrivers/libqsqlite_debug.dylib
/Users/pfn368/QtSDK/Madde/sysroots/harmattan-arm-sysroot/usr/lib/qt4/plugins/sqldrivers/libqsqlite.so
/Users/pfn368/QtSDK/Madde/sysroots/harmattan-nokia-arm-sysroot/usr/lib/qt4/plugins/sqldrivers/libqsqlite.so
/Users/pfn368/QtSDK/Maemo/4.6.2/sysroots/fremantle-arm-sysroot-20.2010.36-2-slim/usr/lib/qt4/plugins/sqldrivers/libqsqlite.so
/Users/pfn368/QtSDK/Qt Creator.app/Contents/MacOS/qmlpuppet.app/Contents/PlugIns/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/Qt Creator.app/Contents/PlugIns/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/QtSources/4.8.0/plugins/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/QtSources/4.8.0/plugins/sqldrivers/libqsqlite_debug.dylib
/Users/pfn368/QtSDK/Simulator/Application/simulator.app/Contents/PlugIns/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/Simulator/Qt/gcc/plugins/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/Simulator/Qt/gcc/plugins/sqldrivers/libqsqlite_debug.dylib
Run Code Online (Sandbox Code Playgroud)
这是我的.pro文件
QT += sql core gui\
network
TARGET = mini-stock-exchange
TEMPLATE = app
SOURCES += ./src/main.cpp\
./src/mainwindow.cpp
HEADERS += ./header/mainwindow.h
FORMS += ./ui/mainwindow.ui
Run Code Online (Sandbox Code Playgroud)
我的包括
#include "./header/mainwindow.h"
#include "ui_mainwindow.h"
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlQuery>
#include <QFile>
#include <QtSql/QSqlError>
#include <qsqldatabase.h>
#include <QtCore>
#include <QtSql>
Run Code Online (Sandbox Code Playgroud)
用于调用数据库的代码
QSqlDatabase defaultDB = QSqlDatabase::addDatabase("QMYSQL3");
if ( !defaultDB.isValid() ) {
qWarning( "Failed to connect to the database driver" );
}
defaultDB.setDatabaseName( "nicu" );
defaultDB.setUserName( "root" );
defaultDB.setPassword( "root" );
defaultDB.setHostName( "http://localhost:8889" );
Run Code Online (Sandbox Code Playgroud)
Sana,我会尽力拯救那只手,好吧。
首先,您需要来自互联网的 Qt Everywhere 开源包。我不知道您正在运行什么版本的 Qt,但您需要与核心安装相同的版本。
其次,进入源码包并浏览插件,直到找到 sql 驱动程序和 mysql 插件。在此阶段,请确保您知道 mysql 库和包含文件所在的路径,因为您将需要它们。
第三,修改 mysql 插件的 .pro 并将 MySql 包含路径添加到 INCLUDEPATH+= 并将库添加到....LIBS+=
第四,在.pro上运行qmake来生成一个Makefile,然后制作make文件,你就会有一些漂亮的小.dylib文件用充满喜悦的眼睛看着你。
第五,有趣的部分,您需要找到其他插件的位置,这因系统而异。找到它们的最快方法是在终端中输入“sudo find / |” grep libqsqlite' 它会给你它的位置,那就是你的 Qt sqldrivers 插件目录。将您刚刚构建的 dylib 复制到那里。
那应该可以了。它对我来说在相当多的构建和重建中都有效。