Qt5 QWidget project dependencies? OpenGL? Direct3D? WTH?
-
bq. Elaborate “doesn’t run”.
The executable just doesn't start, there is no error, no nothing. Adding libEGL.dll fixed it, even thou there was no error message about it missing, unlike the rest of the dependencies.
I compiled Qt5 myself with MSVC2012 x64.
So you are telling me I need to have a whole new separate build of Qt just so I can eliminate OpenGL and Direct3D as a dependency for project, which DO NOT USE IT to begin with???
-
Yes, the same way you would have to have a whole new separate build of Qt just so you can eliminate the Windows Network libraries as a dependency for a project, which does not use networking to begin with.
-
I get the feeling the Qt4 solution was more elegant - the same build can be used to develop OpenGL applications, but for those that do not use OpenGL, it is not a requirement...
BTW shouldn't platform specific APIs be abstracted from? The logical thing would be for the same Qt APIs to be ported to work work regardless of the platform's vendor specific APIs? Wasn't the very idea of Qt to be platform agnostic?
All this sounds very counter-intuitive, counter-productive, inefficient and a step back as a whole... Changes, made for the sake of improving modularity seem to actually make it worse. Now I need several different builds of Qt instead of one...
-
[quote author="utcenter" date="1356963333"]I get the feeling the Qt4 solution was more elegant - the same build can be used to develop OpenGL applications, but for those that do not use OpenGL, it is not a requirement...[/quote]It was a deliberate design and release decision (I don't see a reason one would not take advantage of OpenGL unless there are very specific reasons, in which case you can still remove the dependency using <code>-no-opengl</code>). Separation and abstraction does not come for free.
In addition, deployment is a Windows issue only, a platform where Qt is usually deployed with the application anyways.
[quote author="utcenter" date="1356963333"]BTW shouldn't platform specific APIs be abstracted from? The logical thing would be for the same Qt APIs to be ported to work work regardless of the platform's vendor specific APIs? Wasn't the very idea of Qt to be platform agnostic?[/quote]What platform-specific resp. vendor-specific APIs?
-
I just mean it shouldn't really matter what is underneath Qt, the Qt APIs are abstracted enough but the core dependencies are not optional. To me that means modularity is actually worse after the extra modularization of Qt5.
As for a reason why not to use OpenGL - one might target an embedded platform that does not have hardware or software support for OpenGL. And while it is possible to emulate it, why even bother if you don't really need it?
All in all, I feel like the Qt5 release announcement slogan needs a disclaimer added:
bq. ONE FRAMEWORK* TO RULE THEM ALL
*you will still need several instances of itOn a side note, while adding the EGL dll fixed the app on the development platform, it still refuse to run on another machine, even after adding some more VC2012 binaries to boost the size of dependencies to 20 MB.
-
[quote author="utcenter" date="1356972989"]I just mean it shouldn't really matter what is underneath Qt, the Qt APIs are abstracted enough but the core dependencies are not optional. To me that means modularity is actually worse after the extra modularization of Qt5.[/quote]OpenGL is still optional, it is just now a compile-time choice which is enabled by default. Feel free to build Qt without OpenGL (which is by the way neither platform-specfic, nor vendor-specific).
[quote author="utcenter" date="1356972989"]As for a reason why not to use OpenGL - one might target an embedded platform that does not have hardware or software support for OpenGL. And while it is possible to emulate it, why even bother if you don't really need it?[/quote]Apart from the fact that you will have to be after a recent SoC which does not support at least OpenGL ES to find one you still have the option to just no depend on OpenGL in the custom build of Qt you'll need anyway for an embedded platform.
[quote author="utcenter" date="1356972989"]bq. ONE FRAMEWORK* TO RULE THEM ALL
*you will still need several instances of it[/quote]Do you think that it is possible that the compile time choice for OpenGL is a problem for you, but not necessarily for others?[quote author="utcenter" date="1356972989"]On a side note, while adding the EGL dll fixed the app on the development platform, it still refuse to run on another machine, even after adding some more VC2012 binaries to boost the size of dependencies to 20 MB.[/quote]Consult the Windows Event Log.
-
Not intending to be rude, but you do exhibit the typical fanboy behavior, you remind me of those Apple or AMD fanboys that feel obligated to defend and justify each and every decision of their cult/company, no matter whether it makes sense, is productive, efficient or anything. Normally the personal opinion of normal (non-fanatically devoted fanboys) is formed by a series of pro's and con's which shape an overall shade, but with you this doesn't appear to be the case.
So let me ask you, do you happen to find anything that has happened in Qt the last few years wrong? Or do you take each and every decision to be the right one for granted? I've never seen you criticize anything, you always justify, you always approve... I hope at least you get paid for this, but probably yes, judging by your choice of visual representation - a faceless black suit labeled Qt...
-
I just don't see the problem, but feel free to file a "bug report":https://bugreports.qt-project.org/. "Patches":https://codereview.qt-project.org/ are welcome as well.
-
LOL and that is the automated response you always resort to, even in situations where there is no bug involved, like this one.
Happy new year!
-
You want something changed in Qt. There are two ways to achieve this, regardless whether it is a bug, a feature request or a change request: you either file a bug report so the QtProject might do the work for you or you do the changes on your own and submit them.
Moaning here at the forums does not change anything.
-
Nope, there are no ways to achieve this, one too many times have the requests of the community been arrogantly disregarded as groundless moaning of clueless idiots while the stupid decision behind Qt are being justified with every possible means.
How stupid is it to have a dependency on OpenGL and Direct3D in an application that doesn't use either??? Oh no, it is not stupid, it is just yet another of the brilliant decisions pushing Qt forward into a better and brighter future.
There are many decent people that have been quick to help me out when I needed help. And then there is you, with a "helping to preaching" ratio so low I'd appreciate it if from now on you refrain from following my every post with your dedicated pimping of an illusion of greatness and concern with the developer base. So I would really appreciate it if you cut the "political agenda" BS - if you are capable of such a feat, something that sadly cannot be said for most of fanboys out there.
-
I didn't mean to infantilize you.
I just don't see the relevance of your request in practice. This does neither mean that your requests are "...groundless..." that make you an "...clueless idiot..." and me the incarnation of ..."greatness and concern...", nor that I'm right and you are wrong - it just means that I have a different opinion on the question you've asked and the points you've raised, and that I do not find your arguments suitable enough to convince me of the contrary. That's the nature of discussions, and no reason to get into a huff.
Granted, the granularity of modularization can be argued over, most probably for all eternity. But I don't see the current one beeing disputable relating to dependencies, because there is still the option to not depend on stuff I do not want or need to, for example OpenGL or DirectX. Officially released shared libraries will always compel you to distribute stuff your application does not depend on, be it other shared libraries or data and code in existing libraries you do not use, because they are made to support any application, not a specific one.
It is indeed your right to think that I'm wrong and to demand changes if you think that a wrong decision has been made, by either filing a bug report or participating in development - of course at the risk that others don't find your arguments suitable enough as well. Not every decision you find "...stupid..." has to be actually stupid.
And I again invite you to join the Qt Development Mailing List and the Qt Open Governance Code Review to find out how and why decisions are made in the Qt Project.
-
I still cannot get the Qt5 executable to run on another system... Dependency walker wasn't much help - I get no errors, no notifications, no nothing, the exe just doesn't start. I managed to make it run on the development machine outside of Creator, but that's about it...
Those are the DLLs I added:
D3DCompiler_46.dll
libEGL.dll
libGLESv2.dll
msvcp110.dll
msvcr110.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll
qwindows.dllHaven't added icu since I built Qt5 without the webkit...
-
[quote author="Lukas Geyer" date="1356970453"][quote author="utcenter" date="1356963333"]I get the feeling the Qt4 solution was more elegant - the same build can be used to develop OpenGL applications, but for those that do not use OpenGL, it is not a requirement...[/quote]It was a deliberate design and release decision (I don't see a reason one would not take advantage of OpenGL unless there are very specific reasons, in which case you can still remove the dependency using <code>-no-opengl</code>). Separation and abstraction does not come for free.
In addition, deployment is a Windows issue only, a platform where Qt is usually deployed with the application anyways.
[quote author="utcenter" date="1356963333"]BTW shouldn't platform specific APIs be abstracted from? The logical thing would be for the same Qt APIs to be ported to work work regardless of the platform's vendor specific APIs? Wasn't the very idea of Qt to be platform agnostic?[/quote]What platform-specific resp. vendor-specific APIs?
[/quote]
Entering a configure options list like the one below:
configure -developer-build -opensource -nomake examples -no-opengl -no-icu
Fails miserably
-
[quote author="Lukas Geyer" date="1356970453"][quote author="utcenter" date="1356963333"]I get the feeling the Qt4 solution was more elegant - the same build can be used to develop OpenGL applications, but for those that do not use OpenGL, it is not a requirement...[/quote]It was a deliberate design and release decision (I don't see a reason one would not take advantage of OpenGL unless there are very specific reasons, in which case you can still remove the dependency using <code>-no-opengl</code>). Separation and abstraction does not come for free.
In addition, deployment is a Windows issue only, a platform where Qt is usually deployed with the application anyways.
[quote author="utcenter" date="1356963333"]BTW shouldn't platform specific APIs be abstracted from? The logical thing would be for the same Qt APIs to be ported to work work regardless of the platform's vendor specific APIs? Wasn't the very idea of Qt to be platform agnostic?[/quote]What platform-specific resp. vendor-specific APIs?
[/quote]
Entering a configure options list like the one below:
configure -developer-build -opensource -nomake examples -no-opengl -no-icu
Fails miserably
-
Define 'fails miserably'.
If you are not going to autotest Qt you do not need a <code>-developer-build</code>. And never release one.
-
Use static build, you will have one .exe (about 15Mb) worked from flashdrive elsewhere.
-
Unfortunately, that is not an option for commercial applications if you don't have a commercial Qt license, which is pretty pricey, especially for startup indie developers.
-
[quote author="utcenter" date="1357159840"]
Those are the DLLs I added:D3DCompiler_46.dll
libEGL.dll
libGLESv2.dll
msvcp110.dll
msvcr110.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll
qwindows.dll
[/quote]
Should be /platforms/qwindows.dll, i.e. in a sub-directory. -
[quote author="Lukas Geyer" date="1359052917"]Define 'fails miserably'.[/quote]
41 linker errors beginning with failing to build Qt5PrintSupport.dll.
That's miserable!