Развернутое приложение QT не подключается к mysql на других компьютерах Mac - PullRequest
0 голосов
/ 02 мая 2020

У меня есть приложение, созданное в C ++ QT Creator (Ma c), развернутое с помощью инструмента macdeployqt. Он работает нормально на ма c, на котором он был создан, но при использовании на другом ма c я получаю сообщение об ошибке Драйвер не загружен.

Я посмотрел в MyApp.app и запустил otool -L на libq sqlmysql .dylib. Похоже, что он обращается к libmysqlclient.21.dylib в каталоге /usr/local/mysql-8.0.20-macos10.15-x86_64/lib вместо приложения?

Он поставил libmysqlclient.21.dylib в пакете, но в каталоге frameworks. Он ищет 2 библиотеки в каталоге @loader_path, libssl.1.1.dylib и libcrypto.1.1.dylib.

Я не уверен, что это проблемы, так как я нуб на Mac.

В общем, как мне это исправить и нужны ли мне какие-то дополнительные библиотеки? Это otool -L на них:

Ghosts-iMac:sqldrivers ghost$ otool -L libqsqlmysql.dylib

libqsqlmysql.dylib:

libqsqlmysql.dylib (compatibility version 0.0.0, current version 0.0.0)

@rpath/QtSql.framework/Versions/5/QtSql (compatibility version 5.9.0, current version 5.9.9)

@rpath/QtCore.framework/Versions/5/QtCore (compatibility version 5.9.0, current version 5.9.9)

/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0)

/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)

/usr/local/mysql-8.0.20-macos10.15-x86_64/lib/libmysqlclient.21.dylib (compatibility version 20.0.0, current version 20.0.0)

/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.0)

/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.0.0)
Ghosts-iMac:sqldrivers ghost$ otool -L libmysqlclient.21.dylib

libmysqlclient.21.dylib:

@rpath/libmysqlclient.21.dylib (compatibility version 21.0.0, current version 21.0.0)

@loader_path/libssl.1.1.dylib (compatibility version 1.1.0, current version 1.1.0)

@loader_path/libcrypto.1.1.dylib (compatibility version 1.1.0, current version 1.1.0)

/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 800.7.0)

/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.0.0)

Я не знаю, почему macdeployqt сделал это. Это может быть решено через это или мне нужно сделать это вручную, используя install_name_tool как-нибудь?

Любая помощь будет оценена.

Спасибо

...