mac下Qt缺失libiodbc.2.dylib和libpq.5.dylib解决方案

做了个mysql的qt小项目,当我准备用macdeployqt打包成pkg文件的时候,报错如下:
$ macdeployqt /Users/rodin/Documents/Courses/DB/PSMS/build-PSMS-Desktop_Qt_5_15_0_clang_64bit-Release/PSMS.app
ERROR: no file at “/usr/local/opt/libiodbc/lib/libiodbc.2.dylib”
ERROR: no file at “/Applications/Postgres.app/Contents/Versions/9.6/lib/libpq.5.dylib”
也就是缺失libiodbc.2.dylib和libpq.5.dylib


经查询资料,libiodbc.2.dylib是
mac下Qt缺失libiodbc.2.dylib和libpq.5.dylib解决方案
这玩意的一个动态链接库,于是brew cask install postgres。
但是libiodbc.2.dylib的目标路径是app包文件夹的Contents的Versions的9.6里,然而我打开看里面只有10,11和12三个更新版本的,所以用软链接,记得先建文件夹。
ln -s /Applications/Postgres.app/Contents/Versions/12/lib/libpq.5.12.dylib /Applications/Postgres.app/Contents/Versions/9.6/lib/libpq.5.dylib
其中libpq.5.12.dylib是最新版本的,向下兼容。
完事之后如下图:
mac下Qt缺失libiodbc.2.dylib和libpq.5.dylib解决方案


libpq.5.dylib就更好办了,直接输入:
brew unlink unixodbc
brew install libiodbc
完事后dylib文件就在那里了,动都不用动。

然后就搞定了!!!

参考链接:https://stackoverflow.com/questions/59944545/qt-and-macos-libiodbc-2-dylib-and-other-libraries-are-missing