Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3810112
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 19, 20262026-05-19T15:24:34+00:00 2026-05-19T15:24:34+00:00

According to qt.nokia.com , Qt is a cross-platform application and UI framework, allowing you

  • 0

According to qt.nokia.com, Qt is a “cross-platform application and UI framework”, allowing you to “write code once to target multiple platforms”. The Qt SDK is a “complete development environment” containing “the tools you need to build cross-platform applications with Qt in a single install”. Qt Creator is a “cross-platform IDE” that “runs on Windows, Linux/X11, and Mac OS X desktop operating systems, and allows developers to create applications for multiple desktop and mobile device platforms.”

The magic words “cross compilation” are not mentioned explicitly those website blurbs. Nevertheless, a naive reader might be forgiven for inferring that you can download the Qt SDK (including Qt Creator) for whatever host system you are using for development, create a project, and write some code from which you could easily generate executables for Windows, Linux, Mac, etc. By “easily” I have in mind something like ticking some checkboxes in a build settings dialog, and pressing the “Build” button.

I’m still looking for those checkboxes! Meanwhile, I have found various posts, here and elsewhere, about installing a cross-compiler, installing additional binaries, rewriting your qmake file, etc. From the marketing, I sort of expected that cross-compilation would already be fully and directly supported with an “out-of-the-box” installation of the IDE and SDK tools. Am I missing something obvious?

If not, I have development machines available with all three operating systems. Should I just install Qt Creator on all three platforms? If I do that, can I expect to be able to take a Qt project (or maybe just the source code) that I have developed using Qt Creator for, say, Windows, copy it over to my Mac or Linux machine, and build it there using the version of Qt Creator for that platform, without running into some major issues? Might that even be the best practice for using Qt to create executables for mutiple platforms, vs. installing cross-compilation tools on a single development host?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-19T15:24:35+00:00Added an answer on May 19, 2026 at 3:24 pm

    Qt’s tagline is:

    Write once, compile everywhere.

    With this in mind, Qt doesn’t officially offer any out of the box solution for cross compiling Qt applications from a specific platform to other different platforms. Though definitely do-able, if much work and time is invested, Qt good common practice would suggest you to build your Qt application directly on the targeted platform. That means, build your the Windows target for your application an a Windows machine, your Mac target on a Mac machine and Linux target on a, you guessed right( 🙂 ), a Linux machine.

    That’s way “Write once, compile everywhere”, in my opinion is a very well chosen combination of words. Otherwise the tag line might have been, “Write once, compile for everything”.

    Going back to the original issue, you don’t even need different physical machines for each of the targeted platforms, since in this day and age of good Virtualization solutions you can easily set up a couple of virtual machines and build you app on different platforms from the same physical machine.

    As for the other questions not directly answered from your question:

    Should I just install Qt Creator on
    all three platforms? If I do that, can
    I expect to be able to take a Qt
    project (or maybe just the source
    code) that I have developed using Qt
    Creator for, say, Windows, copy it
    over to my Mac or Linux machine, and
    build it there using the version of Qt
    Creator for that platform, without
    running into some major issues?

    Yes. Minor issues are things like getting your applications executable/binaries icons right on all three major platforms(Windows, Linux, Mac) or Mac Dock advanced integration or tray bar Integration problems between the two. These issues can be handled without breaking the cross platform characteristic of your code, by properly encapsulating your platform specific code in compiler directives like #define for eg. I also recommend doing so for every other platform specific code that your application requires or if you will make extensive use of platform specific code, separating entire blocks of related platform specific code into several dynamical loaded libraries(or shared libraries) specific to each platform but exporting the same abstract generic interface and loading/linking to them as needed.

    Might that even be the best practice
    for using Qt to create executables for
    mutiple platforms, vs. installing
    cross-compilation tools on a single
    development host?

    You should use the Qt SDK(Qt Creator or the command line tools) for building your application wherever possible since tools like qmake will take the burden of handling .moc files manually in your Makefiles. But if that becomes impossible for several whatever reasons, for eg. like your company imposing Visual Studio development(cross platform huh?), there are many tutorials out there on how to handle Qt based builds using build systems like MS Visual Studio, GNU autotools or CMake.
    Though i would recommend sticking with qmake, which is a good “make makefile” generator and easily adaptable to whatever platform specific hacks you might need for your application to build right, rather then using a build system which is more comfortable to the platform specific hacks and then trying to accommodate for Qt’s needs for those build systems. After all, if you develop your application in Qt for cross platform reasons, then Qt should be the primary framework for your application and not the platform specific api/code or third party libraries you might use.

    I hope i have been clear enough and helpful.

    PS: I am also welcome to suggestions or fixes/additions regarding what i wrote in the comments.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

According to what I have found so far, I can use the following code:
I'm trying to use the PredicateBuilder, as described here - http://www.albahari.com/nutshell/predicatebuilder.aspx The following code
According to this SDK guide , unit-testing a Library project can be achieved by
According to Single-Threaded Application with Long-Running Calculation MSDN example, there is a possibility of
According to MDC https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/exec the following code should log each of the global matches
According to my last post in here one of friends suggested this code: using
According to http://msdn.microsoft.com/en-us/library/ms535934(v=VS.85).aspx and http://msdn.microsoft.com/en-us/library/ms535262(v=VS.85).aspx , I should be able to do the following
According to this page navigating between highlighted usages: (source: jetbrains.com ) can be done
According to this discussion , the iphone agreement says that it doesn't allow loading
According to the manual , git dcommit will create a revision in SVN for

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.