External libraries with windeployqt
I use windeployqt to create a release package that runs on other Windows computers. It was all fine till I was using only Qt libraries and QML,I'd just run this-
windeployqt --qmldir C:\Qt\5.3\mingw482_32\qml myapp.exe @
The resulting package worked fine. Now, I am using an external library https://github.com/frankosterfeld/qtkeychain and using "Add Library" from Qt Creator adds it to .pro as follows-
@win32:CONFIG(release, debug|release): LIBS += -L$$PWD/third_party/qtkeychain-build/ -llibqt5keychain
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/third_party/qtkeychain-build/ -llibqt5keychaind
else:unix: LIBS += -L$$PWD/third_party/qtkeychain-build/ -llibqt5keychain
INCLUDEPATH += $$PWD/third_party
DEPENDPATH += $$PWD/third_party/qtkeychain
From Qt Creator, the project builds fine and runs file. However, windeployqt now complains-
@Unable to find dependent libraries of C:\Qt\5.3\mingw482_32\bin\libqt5keychain.dll :Cannot open 'C:/Qt/5.3/mingw482_32/bin/libqt5keychain.dll': The system cannot find the file specified.
Its because windeployqt doesn't read the .pro otherwise it would've figured out where is libqt5keychain.dll located.
How do I tell windeployqt the dll's location so it can pick it up? I tried adding the dir to PATH, but that doesn't seem to work.
Try using --libdir flag. Or just copy the DLL into C:\Qt\5.3\mingw482_32\bin
the --libdir flag didn't work, it says it will "Copy libraries to path" but we want to tell it where to find libraries. I could copy the DLL to C:\Qt\5.3\mingw482_32\bin, but is that really the right solution?
Maybe the tool is not mature enough yet. Have you tried with Qt 5.4? I think it is a good idea to file a feature request on the bugtracker.
[quote]but is that really the right solution?[/quote] If it works, then why not?