Newbe
-
wrote on 28 Jun 2013, 07:39 last edited by
Hello!
I just moved in to the QT world and found a terrible thing!
QT in my opinion self contained library which can works everywhere. No matter what: additional plugins, absent or present / miss version of qt libraries on the desktop machine - it will work.
But please explain me why QT still do not have the technique to combine application with 3rd party librarys into one package?
I'm trying to build QT application for Windows and Mac. And what I've found is QT can't combine my project (separated by two modules: my library and my application) into a one bundle?
I've found 'macdeployqt' but it has no additional paths command line option to specify where my project libraries are. And I have no option to ask QT link program to link agains my project libraries using absolute path.
Do everyone who build a QT app should write it's own bundle scripts (or QMAKE_POST_LINK). Seriously?
-
Hi and welcome to devnet,
Did you already run macdeployqt ? What was the result ?
It should autodetect most of your dependencies.By the way, it's Qt, QT stands for Apple's QuickTime
-
wrote on 28 Jun 2013, 08:01 last edited by
When you build you bundle / installer you expect to put all necessary libraries to run your app into the installer / bundle.
macdeployqt does only half of work, it put all system libraries, Qt and plugis. All except project libraries.
For example when you have modular structure of your project with multiple developers (which I plane to have) you separate the source code into the devisions called Libraries :)
It is flexible and gives you a lot of benefits. Don't think I have to explain why it is preferable over one big project. For example in Java world you can even download a library from a central repo, do not even worry if you have it on your machine or not.
Qt word is different.
Qt want to keep your work based on Qt librarys only or force you to combine all work into big blob or source code or static linking.
macdeployqt do not see your project dynamic libraries. So if your project contain more then an one application (additional librarys / frameworks combined using (TEMPLATE = subdirs) Mac bundle will never be complete. And will never run unless you write your own perl / bash scripts to complete bundle using your project libraries.
Do everyone have to it by self, and not by the qmake or macdeployqt. To me it is realllly big disadvantage of self efficient framework.
-
[quote author="tegntj" date="1372406466"]
Qt word is different.Qt want to keep your work based on Qt librarys only or force you to combine all work into big blob or source code or static linking.
[/quote]That's not true, Qt doesn't forbid or discourage to use whatever libraries you need to get things done.
You might however have hit a bug with macdeployqt. Did you check the "bug report":https://bugreports.qt-project.org/issues/?jql= system to see if this was known ?
-
wrote on 28 Jun 2013, 08:39 last edited by
Oh, it is more then known bug. It is well documented "feature" :(
bq. Note: If you want a 3rd party library to be included in your application bundle, then you must copy the library into the bundle manually, after the bundle is created.
1/5