Mac Windows Qt5.4.x加载QMYSQL出错的原因

Qt5.4自带mysql驱动,该驱动负责与mysql的动态库打交道。但是用Mac装Qt5.4编译出现mysql驱动未加载,其实原因是:mysql的驱动链接库没有放到该放的位置。

解决办法:1(此借助网上博文,建议用第二种)

loader.setFileName("/Users/Biao/Qt5.4.0/5.4/clang_64/plugins/sqldrivers/libqsqlmysql.dylib");
    qDebug() << loader.load();
    qDebug() << loader.errorString();
上方为加载绝对路径(缺点:如果安装的路径不一样,这个是加载不起来的,主要原因并不是加载路径的问题)
false
Cannot load library /Users/Biao/Qt5.4.0/5.4/clang64/plugins/sqldrivers/libqsqlmysql.dylib:
(dlopen(/Users/Biao/Qt5.4.0/5.4/clang64/plugins/sqldrivers/libqsqlmysql.dylib, 5): Library not loaded: /opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib
Referenced from: /Users/Biao/Qt5.4.0/5.4/clang_64/plugins/sqldrivers/libqsqlmysql.dylib
Reason: image not found)

意思就是建立个文件夹并把mysql驱动放进去,如:/opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib。注:该动态库位于安装mysql的库文件夹内:可能是:/usr/local/mysql/libmysqlclient.18.dylib

库查找顺序为:系统路径-》qt默认的路径(此为/opt/...)所以第二种方法就是把库加到系统库路径下。也可用export命令

2:sudo cp /usr/local/mysql/libmysqlclient.18.dylib /usr/lib/

其实就是这个mysql动态库的问题,qt给的提示其实是误导人的,其实那个mysql驱动是正常的。

Windows一样的道理,需要把mysql安装目录下lib下libmysql.dll复制到c:/windows目录下即可。

你可能感兴趣的:(Mac Windows Qt5.4.x加载QMYSQL出错的原因)