Mac上Qt的MySQL
我已经浪费了大约6个小时,试图让MySQL按照web上的各种指示使用Qt。我现在想把我的手腕砍掉 有人对如何将QMYSQL驱动程序安装到Qt中有一个简单而详细的解释吗 我有Mac10.6,我是n00b的初学者 我衷心感谢你的帮助 萨那 编辑: 当我做grep时,我得到了以下文件,所以在这些文件中,我只是为了好玩,将libqsqlmysql.dylib复制到了所有的文件夹中,但我仍然无法编译。。。我得到一个错误,说Mac上Qt的MySQL,mysql,macos,qt,Mysql,Macos,Qt,我已经浪费了大约6个小时,试图让MySQL按照web上的各种指示使用Qt。我现在想把我的手腕砍掉 有人对如何将QMYSQL驱动程序安装到Qt中有一个简单而详细的解释吗 我有Mac10.6,我是n00b的初学者 我衷心感谢你的帮助 萨那 编辑: 当我做grep时,我得到了以下文件,所以在这些文件中,我只是为了好玩,将libqsqlmysql.dylib复制到了所有的文件夹中,但我仍然无法编译。。。我得到一个错误,说QSqlDatabase:QMYSQL驱动程序未加载 /Library/Applic
QSqlDatabase:QMYSQL驱动程序未加载
/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
这是我的.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
我的包括
#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>
萨娜,我要试着救那只手,好的 首先,您需要来自Internet的Qt everywhere开源软件包。我不知道您运行的是哪个版本的Qt,但您需要与核心安装相同的版本 第二,进入源代码包,检查插件,直到找到sql驱动程序和mysql插件。在这个阶段,确保您知道mysql库和包含的路径是什么,因为您需要它们 第三,修改mysql插件的.pro,将mysql包含路径添加到INCLUDEPATH+=中,将libs添加到….libs+= 第四,在.pro上运行qmake生成一个Makefile,然后生成make文件,您将看到一些非常小的.dylib文件,它们充满喜悦地看着您 第五,有趣的是,您需要找到其他插件的位置,这会因系统而异。找到它们的最快方法是在终端类型“sudo find/| grep libqsqlite”中,它将为您提供它的位置,这就是您的Qt-sqldrivers插件目录。复制你刚刚建立的动态库
这应该可以做到。它在很多构建和重建中对我起到了作用。首先下载Qt-SDK源代码和一个版本的mysql服务器源代码,然后将它们提取出来 创建指向MySQL库文件的符号链接:
sudo ln -s /Users/simon/Downloads/mysql-5.6.11-osx10.7-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.dylib
sudo ln -s /Users/simon/Downloads/mysql-5.6.11-osx10.7-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient_r.dylib
sudo ln -s /Users/simon/Downloads/mysql-5.6.11-osx10.7-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
sudo ln -s /Users/simon/Downloads/mysql-5.6.11-osx10.7-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient_r.18.dylib
然后将cd
下载到您提取的Qt-SDK文件夹/Users/simon/Downloads/Qt-everywhere-opensource-src-4.8.4/src/plugins/sqldrivers/mysql
建立图书馆:
qmake -spec macx-g++ -o Makefile "INCLUDEPATH+=/Users/simon/Downloads/mysql-5.6.11-osx10.7-x86_64/include" "LIBS+=-L/usr/lib -lmysqlclient_r" mysql.pro
make
mv libqsqlmysql_debug.dylib libqsqlmysql.dylib
cp -R libqsqlmysql.dylib /Developer/Applications/Qt/plugins/sqldrivers/
之后,您应该能够使用QMYSQL插件。检查库是否正确加载了这一行代码(将其放入某个构造函数中,以便在启动应用程序后立即输出):
Mac Homebrew的Qt 4软件包有一个选项,可以将mysql驱动程序安装为默认的Qt插件(这不是默认选项,这就是您缺少此选项的原因) 下载并安装Mac OS X自制软件,如下所述: 安装自制软件后,请删除以前安装的Qt4 如果使用brew安装,只需在终端上键入:
$ brew remove qt4
要使用mysql支持安装它,请运行:
$ brew install qt4 --with-mysql
每次您需要在brew中安装带有某些选项的软件包,但不知道支持的选项时,请键入:
$ brew options FORMULA_NAME
它将显示给定公式的所有可用构建选项。不要这样做!(在“它”被割下手腕的地方)但是要这样做!我应该安装哪个MySQL版本,因为我在MySQL文件夹下没有看到libmysql.lib文件!我确实在~/QtSDK/QtSources/4.8.0/plugins/sqldrivers下有libqsqlmysql_debug.dylib和libqsqlmysql.dylib。我的问题是我应该把这些文件复制到哪里?我的Qt程序库或其他地方?请参阅我的文章的编辑部分。。。我得到了太多的文件夹,并且我已经将
libqlmysql.dylib
复制到了所有的文件夹中,但仍然得到了错误!:|它们只需要对Qt“可见”,这通常意味着Qt所在的工作路径(因此QtSDK/)。如果你有它们,但仍然很痛苦,试着将其作为SQLITE加载,看看这是插件/sqldrivers的全局问题还是MySQL插件的问题。不,在将.dylib文件放在所有文件夹中后,我还是不明白。该死的Qt!完美的非常感谢,你的帖子帮了大忙。Mac OS X Sierra有一个问题:在qmake
命令中,我需要的是“LIBS+=/usr/lib/libmysqlclient_r.dylib”
,而不是修改LIBS使其正常工作。brew重新安装qt--with mysql
可以处理以前安装的qt。不需要先移除。
$ brew remove qt4
$ brew install qt4 --with-mysql
$ brew options FORMULA_NAME