4 ms·
Hello world in Qt is 25MB as a demonstration of 'lightweight' Qt.
by CyberDildonics 9y ago
Hello world in Qt is 25MB as a demonstration of 'lightweight' Qt.
- joezydeco 9y agoNobody optimizes and recompiles the libraries anymore to configure out the unnecessary parts. The mechanisms are still there but the practice died when Qt stopped focusing on embedded targets.
- ahartmetz 9y agoQt does focus very much on embedded targets: http://blog.qt.io/blog/2016/08/18/introducing-the-qt-lite-project-qt-for-any-platform-any-thing-any-size/ http://blog.qt.io/blog/2016/08/18/introducing-the-qt-lite-pr... Embedded is the biggest market for Qt right now.
- joezydeco 9y agoA few notes: 1) Qt Widgets development stopped with 5.0. I had bugs filed on the embedded Linux targets and was told "sorry, these will never be fixed". 2) #1 means that Qt wants you to use QML. I need to run a Javascript engine on my target? Note in the comments of that blog post that they hope to run on an A7 (or really fast M7)...someday. 2b) ...And if they do run on a lower end platform, you still need a POSIX O/S. uCLinux is not a great option on M3/M4 CPUs and keeping the binding dynamic on those cores to stay LGPL compliant is extremely difficult. 3) QML bindings are a pain in the ass, especially when you're trying to put a UI on legacy code. 4) Most crucial: Qt Lite and QtDC are commercial products only. So, in my opinion, embedded is still a 2nd class player. Or, I could clarify further: low end embedded is a 2nd class player. If you're working on automotive HMI/IVI? They'd love your business.
- k__ 9y agoNever understood the obsession some people have with Qt
- joezydeco 9y agoIt's a solid toolkit that gets the job done and gets out of the way. I've shipped a dozen products with it over the course of my career. On embedded targets I'd never use anything else. The alternatives are way too simple or overscripted playback engines that have no flexibility with underlying code.
- jcelerier 9y ago> 1) Qt Widgets development stopped with 5.0. http://blog.qt.io/blog/2018/02/22/qt-roadmap-2018/ http://blog.qt.io/blog/2018/02/22/qt-roadmap-2018/ > So, quite many new things for Qt Quick users, but not to worry – we have not forgotten users of Qt Widgets. On the contrary, already during the past year we have been increasingly addressing open bugs of Qt Widgets and intend to continue doing so during 2018 and beyond. Both Widgets and Qt Quick have their strong points and they complement each other nicely as fully supported parts of the Qt offering.
- joezydeco 9y agoI'll believe it when I see it. That also kind of hints there were others like me that didn't believe in the QML future.
- jcelerier 9y agouh ? I have a large Qt / boost app (300kloc) that I compiled with Qt/WASM and the resulting .js is less than 20 megabytes.
- CyberDildonics 9y agoThat was for native compilation and those figures were from their own website.
- k__ 9y agoThat's what I thought. Web-apps are architected fundamentally different than classical software.
- jcelerier 9y agohello.cpp: #include <QLabel> #include <QApplication> int main(int argc, char** argv) { QApplication app{argc, argv}; QLabel label{"hello world!"}; label.show(); return app.exec(); } build: $ g++ -O2 -g0 -fPIC hello.cpp -I/usr/include/qt -I/usr/include/qt/QtWidgets -lQt5Widgets -lQt5Core $ du -csh a.out 16K a.out seriously...
- joezydeco 9y agoTry it again with Qt configured for -static and not -dynamic.
- sirspudd 9y agoI compile a Qt Quick application statically for the Raspberry Pi on a regular basis, and the whole binary is around 7 megs big. If you remove Qt Declarative (Your hello world just requires QtCore) it will be a fraction of this size. So nice to see people fabricating numbers and passing them off as data.