c++ - QMYSQL driver not loaded, tried all hints -
iam writing c++ application qt 5.3 using qt-creator ide on mac os 10.8. problem appears when iam trying load qmysql plugin
db = qsqldatabase::adddatabase("qmysql"); it results in
qsqldatabase: qmysql driver not loaded qsqldatabase: available drivers: qsqlite qmysql qmysql3 qodbc qodbc3 qpsql qpsql7 so tried
loader.setfilename("/users/kilian/qt/5.3/clang_64/plugins/sqldrivers/libqsqlmysql_debug.dylib"); qdebug() << loader.load(); qdebug() << loader.errorstring(); to improve output
"die bibliothek /users/foob/qt/5.3/clang_64/plugins/sqldrivers/libqsqlmysql_debug.dylib kann nicht geladen werden: (dlopen(/users/foob/qt/5.3/clang_64/plugins/sqldrivers/libqsqlmysql_debug.dylib, 5): library not loaded: libmysqlclient.18.dylib referenced from: /users/foob/qt/5.3/clang_64/plugins/sqldrivers/libqsqlmysql_debug.dylib reason: image not found)" so tried otool
otool -l build-$appname-desktop-debug/$appname.app/contents/macos/$appname build-$appname-desktop-debug/$appname.app/contents/macos/$appname: /usr/local/mysql/lib/libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0) /users/foob/qt/5.3/clang_64/lib/qtwidgets.framework/versions/5/qtwidgets (compatibility version 5.3.0, current version 5.3.0) /users/foob/qt/5.3/clang_64/lib/qtgui.framework/versions/5/qtgui (compatibility version 5.3.0, current version 5.3.0) /users/foob/qt/5.3/clang_64/lib/qtcore.framework/versions/5/qtcore (compatibility version 5.3.0, current version 5.3.0) /users/foob/qt/5.3/clang_64/lib/qtsql.framework/versions/5/qtsql (compatibility version 5.3.0, current version 5.3.0) /system/library/frameworks/opengl.framework/versions/a/opengl (compatibility version 1.0.0, current version 1.0.0) /system/library/frameworks/agl.framework/versions/a/agl (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0) /usr/lib/libsystem.b.dylib (compatibility version 1.0.0, current version 169.3.0) as information, built qmysql plugin myself with
$cd qt/5.3/src/qtbase/src/plugins/sqldrivers/mysql/ $qmake "includepath+=/usr/local/mysql/include" "libs+=-l/usr/local/mysql/lib -lmysqlclient_r" mysql.pro $ create make -f makefile.release make[1]: nil done `all'. create -f makefile.debug make[1]: nil done `all'. $ create install create -f makefile.release install cp -f "../../../../plugins/sqldrivers/libqsqlmysql.dylib" "/users/foob/qt/5.3/clang_64/plugins/sqldrivers/libqsqlmysql.dylib" cp -f /users/foob/qt/5.3/src/qtbase/lib/cmake/qt5sql/qt5sql_qmysqldriverplugin.cmake /users/foob/qt/5.3/clang_64/lib/cmake/qt5sql/ create -f makefile.debug install cp -f "../../../../plugins/sqldrivers/libqsqlmysql_debug.dylib" "/users/foob/qt/5.3/clang_64/plugins/sqldrivers/libqsqlmysql_debug.dylib" cp -f /users/foob/qt/5.3/src/qtbase/lib/cmake/qt5sql/qt5sql_qmysqldriverplugin.cmake /users/foob/qt/5.3/clang_64/lib/cmake/qt5sql/ everythink seems fine, set before dyld_library_path in /etc/profile export dyld_library_path=/usr/local/mysql/lib:$dyld_library_path
echo $dyld_library_path results in
/usr/local/mysql/lib: the folder /usr/local/mysql/lib :
$ls -lisa /usr/local/mysql/lib/ total 556840 2147230 0 drwxr-xr-x 12 root wheel 408 21 jun 00:01 . 2147093 0 drwxr-xr-x 17 root wheel 578 21 jun 00:01 .. 2147231 8384 -rwxr-xr-x 1 root wheel 4289380 6 mai 13:18 libmysqlclient.18.dylib 2147232 20744 -rw-r--r-- 1 root wheel 10620040 6 mai 13:18 libmysqlclient.a 2147233 8 lrwxr-xr-x 1 root wheel 23 21 jun 00:01 libmysqlclient.dylib -> libmysqlclient.18.dylib 2147234 8 lrwxr-xr-x 1 root wheel 23 21 jun 00:01 libmysqlclient_r.18.dylib -> libmysqlclient.18.dylib 2147235 8 lrwxr-xr-x 1 root wheel 16 21 jun 00:01 libmysqlclient_r.a -> libmysqlclient.a 2147236 8 lrwxr-xr-x 1 root wheel 20 21 jun 00:01 libmysqlclient_r.dylib -> libmysqlclient.dylib 2147237 261360 -rw-r--r-- 1 root wheel 133814816 6 mai 13:08 libmysqld-debug.a 2147239 266288 -rw-r--r-- 1 root wheel 136335512 6 mai 13:18 libmysqld.a 2147240 32 -rw-r--r-- 1 root wheel 14544 6 mai 13:18 libmysqlservices.a 2147241 0 drwxr-xr-x 17 root wheel 578 6 mai 13:21 plugin the related parts of .pro file iam using
macx: { includepath += /usr/local/mysql/include \ /users/foob/qt/5.3/clang_64/include } macx: { libs += -l/usr/local/mysql/lib -lmysqld -lmysqlclient -v } does have hint iam doing wrong?
p.s. changed user & app name privacy.
fixed issue, wasn't aware possible utilize otool , install_name_tool dylibs too. did with
install_name_tool -change libqsqlmysql_debug.dylib /users/foob/qt/5.3/src/qtbase/plugins/sqldrivers/libqsqlmysql_debug.dylib qt/5.3/clang_64/plugins/sqldrivers/libqsqlmysql_debug.dylib now works. knows why libs aren't found in first place? checked makefile produced qmake , seems fine. unusual mac ...
c++ mysql osx qt otool
No comments:
Post a Comment