What’s the best way to take advantage of previous installs of Qt when deploying an app on OSX or macOS?

To answer this I guess I’d need to know the standard or the most common install location of Qt on OSX. I’ve read that the location is something like /Library/Frameworks or /System/Library/Frameworks. To test this I just downloaded and installed Qt 5.9.1 and the installer suggested my home directory first. I went with that location initially because it was a safe place and I wanted to review the contents before trying another location. In the directory structure I saw some Qt framework files in the path /users/mark/Qt5.9.1/5.9.1/clang_64/lib

But the installer gave no option for installing these framework files to /Library/Frameworks. I could manually copy them or use symlinks, but it seems like there would be a more straight forward way of installing the files to /Library/Frameworks. Specifying /Library/Frameworks as the initial install directory also seems inappropriate because it wouldn’t result in the expected directory structure for that location.

So is /Library/Frameworks or /System/Library/Frameworks really the standard or typical location?

The Qt website has a page “Qt for macOS – Deployment”
which discusses how to deploy Qt apps on OSX. The page discusses static linking, and bundling qt framework files with the app.

Here’s an excerpt …

There are two ways to distribute Qt with your application in the frameworks approach:
Private framework within your application bundle.
Standard framework (alternatively use the Qt frameworks in the installed binary).
The former is good if you have Qt built in a special way, or want to make sure the framework is there. It just comes down to where you place the Qt frameworks.
The latter option is good if you have many Qt applications and you want them use a single Qt framework rather than multiple versions of it.

So the latter option above is what I’m interested in. The web page also says …

But when you are deploying the application, your users may not have the Qt frameworks installed in the specified location. For that reason, you must either provide the frameworks in an agreed location, or store the frameworks in the bundle.

“an agreed location”??

How about just using the standard or most typical location?

If there is one.

Is there a recommend approach for going with “the latter option” discussed in the reference above?

لینک منبع

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *