Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mac上Qt的MySQL_Mysql_Macos_Qt - Fatal编程技术网

Mac上Qt的MySQL

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

我已经浪费了大约6个小时,试图让MySQL按照web上的各种指示使用Qt。我现在想把我的手腕砍掉

有人对如何将QMYSQL驱动程序安装到Qt中有一个简单而详细的解释吗

我有Mac10.6,我是n00b的初学者

我衷心感谢你的帮助

萨那

编辑: 当我做grep时,我得到了以下文件,所以在这些文件中,我只是为了好玩,将libqsqlmysql.dylib复制到了所有的文件夹中,但我仍然无法编译。。。我得到一个错误,说
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