Qt World Summit: Submit your Presentation

Cross platform build questions...

  • So I am using Qt 5.6 to build on almost all the supported platforms (Android, OSX/iOS, Linux, Windows, etc.) and I have a few questions. I have been able for the most part to get 5.6 working fine on all these platforms using several architectures (32/64 bit x86, ARM, etc). However, several things puzzle me...sorry for all the questions!

    • When setting up to debug, is a debug version of Qt required on all platforms? It seems to me the answer is no. I do NOT need to debug Qt itself, just the app I am developing. On linux for x86 and arm, I can run the release version of Qt, switch to DEBUG mode in qtcreator and everything works as I expect, no problem. But if I try this in OSX or WIndows, it seems the makefile generated by qmake wants to link in a debug version of Qt, which I do not require. I also saw some posts from MS that you cannot link a non-debug object to a debug object due to runtime library issues on the Windows platform. It seems that Windows and OSX/iOS do require a debug version of Qt if you are going to debug an application?

    • What platforms require a debug Qt version if I'm going to debug my app, and I don't want to edit the generated makefiles to switch to release version of Qt.

    • When I build a non-openGL version of 5.6 for use on ARM, I can get widget applications to build and run. I have to exclude qml/quick/etc, but that's ok. However, the application comes up where the title bar becomes the top part of the gnome window and the app seems to go full screen and become modal over the entire screen? I can't click on anything else and I have to kill the app. On my ARM platform, I do not have full xcb library support so I had to build Qt using the -qt-xcb flag. I suspect there is a xcb problem? Any ideas, or is a non-openGL version of Qt never going to work with widgets?

    • On several platforms the "target.path" is completely ignored. Is this by design?

    • Out of all the available options to find the Qt version/platform/architecture for use in project conditionals, what is best going forwards with Qt 5.x? I've used QT_INSTALL_PREFIX, QMAKE_HOST/QMAKE_TARGET, QT_ARCH, environment vars, etc? What will reliably give me the architecture, for example?

    • What pathing type should be used in project files? I've notice that forward slashes seem to be accepted in almost all environments. However, using tildes or spaces can cause big problems. Anything else suggested for paths that will be used in Windows, Linux, Android, OSX, etc?

    • In iOS, using a QtWebView inside a QQuickWidget causes a crash. This works fine on several other platforms I've tried, including Android? Is this a bug?

    • Is there any documentation that shows potential Qt command line options for starting a Qt app? I think "-platform" is still around, but since the embedded version of Qt died, I have no idea what options were left in Qt 5.x?

    • In several recent versions of Qt, the behavior of "sysroot" and "prefix" configure options have changed. In one version the binaries were put in sysroot, the libs at prefix. In another, everything was installed at prefix. Is this behavior documented anywhere?

    And finally, kudos to the Qt developers...you guys have made some great strides lately! The Android and iOS stuff actually works pretty good and the build process is smooth....great job!! Thanks!

Log in to reply