Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. General talk
  3. Brainstorm
  4. What are the benefits of Qt programming on Linux rather than Windows
QtWS25 Last Chance

What are the benefits of Qt programming on Linux rather than Windows

Scheduled Pinned Locked Moved Solved Brainstorm
androidubuntuvmware
20 Posts 6 Posters 8.9k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    tomy
    wrote on 3 Mar 2017, 23:03 last edited by A Former User 3 Apr 2017, 00:03
    #1

    Hi guys all,

    I'm using a Windows x64 machine with, Qt Creator 5.8, Android Studio 2.2.3, SDK, NDK, Java on it. Using these I can program for both Windows and Android. (although I have still this problem on Qt quick).

    Since using and being familiar with Linux is necessary for my future, I would like to have an Ubuntu distribution as a virtual machine (using VmWare workstation) and practically use it for programming for Windows, Android ( and also Linux probably). That is, the Windows will be the host and Ubuntu as a virtual machine on it.

    I've suffered much from installing the tools needed for being able to run apps for Android OS too (E.g., solving issue of updating the SDK, setting the tools up, etc) now I have an idea in mind:
    installing an Ubuntu OS as a virtual machine and a Linux version of Qt Creator on it, then go for programming. So I need your help.

    1- Can I use Qt Creator (on that Ubuntu virtual OS) for programming for both windows and Android?
    2- What about making programs for Linux, there?
    3- I needed many tools for programming for Android on Windows, do I need all of those tools again there?
    4- What are the benefits of this immigration? That is, is it a good idea to use Linux this way for my purposes and leave Windows?

    Thank you all very much. I will be very grateful if you give answers by numbering (for those 4 questions) or each after its question.

    1 Reply Last reply
    0
    • ? A Former User
      5 Mar 2017, 20:53

      T Offline
      T Offline
      tomy
      wrote on 5 Mar 2017, 20:55 last edited by tomy 3 May 2017, 20:58
      #18

      @Wieland
      I'd seen this, but when I hear that I can use a Linux for iOS apps, questions will appear.

      So to give an answer for my original question, I say: "no advantages unless I'm developing for Linux and not Windows".

      ? 1 Reply Last reply 5 Mar 2017, 20:58
      0
      • ? Offline
        ? Offline
        A Former User
        wrote on 3 Mar 2017, 23:57 last edited by A Former User 3 Apr 2017, 00:05
        #2

        Hi! You can't compile binaries for Windows on Linux. For compiling Windows binaries you need to a Windows machine. It's theoretically possible to set up a cross-compiling environment, but that'd probably be the biggest PITA I can think of. We have a nice overview on our wiki, see Supported Platforms. The table there shows what host is needed for what target.

        1 - No, you can build Android software on Linux, but not Windows software.
        2 - Yes, compiling on Linux for Linux is good.
        3 - Yes, the binaries of these tools aren't compatible between Linux and Windows.
        4 - None. No. IMAO, use either two physical desktop computers or dual boot.

        T 1 Reply Last reply 4 Mar 2017, 09:32
        2
        • E Offline
          E Offline
          Eeli K
          wrote on 4 Mar 2017, 00:07 last edited by
          #3

          1 was answered already.
          2- Yes, it should be possible to compile Linux binaries in a VM.
          3- Yes, if you want to compile Android binaries.
          4- You need Linux to compile for Linux, VM should be ok for that if you don't want to/can't install Linux directly on a machine and use that.

          (Wieland published his answer before me but I didn't want to discard what I already wrote...:)

          1 Reply Last reply
          0
          • ? A Former User
            3 Mar 2017, 23:57

            Hi! You can't compile binaries for Windows on Linux. For compiling Windows binaries you need to a Windows machine. It's theoretically possible to set up a cross-compiling environment, but that'd probably be the biggest PITA I can think of. We have a nice overview on our wiki, see Supported Platforms. The table there shows what host is needed for what target.

            1 - No, you can build Android software on Linux, but not Windows software.
            2 - Yes, compiling on Linux for Linux is good.
            3 - Yes, the binaries of these tools aren't compatible between Linux and Windows.
            4 - None. No. IMAO, use either two physical desktop computers or dual boot.

            T Offline
            T Offline
            tomy
            wrote on 4 Mar 2017, 09:32 last edited by tomy 3 Apr 2017, 09:35
            #4

            @Wieland

            see [Supported Platforms]

            So:
            Host: Windows => Target : Windows and Android
            Host: Linux (say Ubuntu) => Target : Linux and Android

            3 - Yes, the binaries of these tools aren't compatible between Linux and Windows.

            So I need to install all the Linux versions of stuff: SDK, NDK, Java, + system images for Linux!?

            A subtle question: my purpose is, at the time being, not developing apps for Linux, rather, just for windows and android which is accessible on my recent windows machine, so why should I install another OS (Linux) + all the stuff for what that has been obtained already using this current machine (Windows)?
            I meant, OK, I will install a Linux in dual boot, are there any advantages afterwards?

            ? 1 Reply Last reply 4 Mar 2017, 12:05
            0
            • K Offline
              K Offline
              Konstantin Tokarev
              wrote on 4 Mar 2017, 10:53 last edited by
              #5

              You can build software for Windows on Linux using MinGW cross-compiler. Linux distributions sometimes provide cross-compiled libraries in their repos, or you can use http://mxe.cc/

              T 1 Reply Last reply 4 Mar 2017, 14:25
              1
              • T tomy
                4 Mar 2017, 09:32

                @Wieland

                see [Supported Platforms]

                So:
                Host: Windows => Target : Windows and Android
                Host: Linux (say Ubuntu) => Target : Linux and Android

                3 - Yes, the binaries of these tools aren't compatible between Linux and Windows.

                So I need to install all the Linux versions of stuff: SDK, NDK, Java, + system images for Linux!?

                A subtle question: my purpose is, at the time being, not developing apps for Linux, rather, just for windows and android which is accessible on my recent windows machine, so why should I install another OS (Linux) + all the stuff for what that has been obtained already using this current machine (Windows)?
                I meant, OK, I will install a Linux in dual boot, are there any advantages afterwards?

                ? Offline
                ? Offline
                A Former User
                wrote on 4 Mar 2017, 12:05 last edited by
                #6

                @tomy said in What are the benefits of Qt programming on Linux rather than Windows:

                So I need to install all the Linux versions of stuff: SDK, NDK, Java, + system images for Linux!?

                Yes, sure. Linux binaries work only on Linux, Windows binaries work only on Windows, macOS binaries work only on macOS, and so on, and so on.

                A subtle question: my purpose is, at the time being, not developing apps for Linux, rather, just for windows and android which is accessible on my recent windows machine, so why should I install another OS (Linux) + all the stuff for what that has been obtained already using this current machine (Windows)?
                I meant, OK, I will install a Linux in dual boot, are there any advantages afterwards?

                In your first post you said you'd need Linux for your future (whatever that means). If you install it, you'll have it. If you don't need it, don't install it. But maybe I don't understand the question :-)

                T 1 Reply Last reply 4 Mar 2017, 14:25
                1
                • ? A Former User
                  4 Mar 2017, 12:05

                  @tomy said in What are the benefits of Qt programming on Linux rather than Windows:

                  So I need to install all the Linux versions of stuff: SDK, NDK, Java, + system images for Linux!?

                  Yes, sure. Linux binaries work only on Linux, Windows binaries work only on Windows, macOS binaries work only on macOS, and so on, and so on.

                  A subtle question: my purpose is, at the time being, not developing apps for Linux, rather, just for windows and android which is accessible on my recent windows machine, so why should I install another OS (Linux) + all the stuff for what that has been obtained already using this current machine (Windows)?
                  I meant, OK, I will install a Linux in dual boot, are there any advantages afterwards?

                  In your first post you said you'd need Linux for your future (whatever that means). If you install it, you'll have it. If you don't need it, don't install it. But maybe I don't understand the question :-)

                  T Offline
                  T Offline
                  tomy
                  wrote on 4 Mar 2017, 14:25 last edited by tomy 3 Apr 2017, 20:59
                  #7

                  @Wieland
                  Yes, I may need it "in future" but not "for the time being".

                  I meant what are the advantages of using Linux for Android (instead of windows)? for example: (Android programming on Linux vs. on Widnpws)

                  • the Android version of Qt on Linux may have less bugs than that of on windows
                  • using Linux for Android programming gives more accessibilities
                  • faster compiling/running

                  These or whatever else.
                  ?

                  A 1 Reply Last reply 5 Mar 2017, 04:46
                  0
                  • K Konstantin Tokarev
                    4 Mar 2017, 10:53

                    You can build software for Windows on Linux using MinGW cross-compiler. Linux distributions sometimes provide cross-compiled libraries in their repos, or you can use http://mxe.cc/

                    T Offline
                    T Offline
                    tomy
                    wrote on 4 Mar 2017, 14:25 last edited by
                    #8

                    @Konstantin-Tokarev
                    Thanks.

                    1 Reply Last reply
                    0
                    • T tomy
                      4 Mar 2017, 14:25

                      @Wieland
                      Yes, I may need it "in future" but not "for the time being".

                      I meant what are the advantages of using Linux for Android (instead of windows)? for example: (Android programming on Linux vs. on Widnpws)

                      • the Android version of Qt on Linux may have less bugs than that of on windows
                      • using Linux for Android programming gives more accessibilities
                      • faster compiling/running

                      These or whatever else.
                      ?

                      A Offline
                      A Offline
                      ambershark
                      wrote on 5 Mar 2017, 04:46 last edited by ambershark 3 May 2017, 04:46
                      #9

                      @tomy Well for #1 it depends on what you mean.. I write all my apps cross platform for win/linux/osx. I develop exclusively in either linux (most of the time) or sometimes osx. I don't even have a code editor in windows at all.

                      The whole point of Qt is cross platform. So if you stick with Qt specific stuff you can write a linux app that just needs a windows box to build.

                      That being said, you will run into times where things don't look or act right compared to your native OS, in which case you need to do some platform specific tweaking. But on the whole you can write all the code in your OS of choice and then just build and test it on your target platforms.

                      And my 2 cents on moving to Linux (#4) is hell yea! Once you get used to linux or even osx you will hate ever having to touch windows again. ;) I switched to linux in 2000 and went with OSX from 2004-2008 or so, then got sick of paying 6k/computer for apples and back to linux in 2008. Never ever tempted to ever use windows again except to support my software and play games. ;)

                      My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

                      T 1 Reply Last reply 5 Mar 2017, 08:08
                      1
                      • A ambershark
                        5 Mar 2017, 04:46

                        @tomy Well for #1 it depends on what you mean.. I write all my apps cross platform for win/linux/osx. I develop exclusively in either linux (most of the time) or sometimes osx. I don't even have a code editor in windows at all.

                        The whole point of Qt is cross platform. So if you stick with Qt specific stuff you can write a linux app that just needs a windows box to build.

                        That being said, you will run into times where things don't look or act right compared to your native OS, in which case you need to do some platform specific tweaking. But on the whole you can write all the code in your OS of choice and then just build and test it on your target platforms.

                        And my 2 cents on moving to Linux (#4) is hell yea! Once you get used to linux or even osx you will hate ever having to touch windows again. ;) I switched to linux in 2000 and went with OSX from 2004-2008 or so, then got sick of paying 6k/computer for apples and back to linux in 2008. Never ever tempted to ever use windows again except to support my software and play games. ;)

                        T Offline
                        T Offline
                        tomy
                        wrote on 5 Mar 2017, 08:08 last edited by tomy 3 May 2017, 08:09
                        #10

                        @ambershark

                        Do you use a Linux to write apps for Windows, Linux and iOS (or even Android as well)!? That is, is it possible to write apps for iOS on a non-iDevice!? Or even for Windows on a Linux!?

                        I guess these may not be impossible, but there may be bugs in developing various types of apps this way. For example, although developing Android apps on Windows is possible, I faced a bug when testing a simple Qt Quick app on an emulator!
                        Then, I was told if I use a Linux for writing Qt Quick apps, that bug is fixed there. And that was the reason I tried to know all the benefits of moving to Linux.

                        K A 2 Replies Last reply 5 Mar 2017, 08:33
                        0
                        • T tomy
                          5 Mar 2017, 08:08

                          @ambershark

                          Do you use a Linux to write apps for Windows, Linux and iOS (or even Android as well)!? That is, is it possible to write apps for iOS on a non-iDevice!? Or even for Windows on a Linux!?

                          I guess these may not be impossible, but there may be bugs in developing various types of apps this way. For example, although developing Android apps on Windows is possible, I faced a bug when testing a simple Qt Quick app on an emulator!
                          Then, I was told if I use a Linux for writing Qt Quick apps, that bug is fixed there. And that was the reason I tried to know all the benefits of moving to Linux.

                          K Offline
                          K Offline
                          Konstantin Tokarev
                          wrote on 5 Mar 2017, 08:33 last edited by
                          #11

                          @tomy To develop for iOS (tvOS, watchOS as well) you have to use macOS. Everything else is possible to do on Linux.

                          Windows development on Linux may give you some troubles that you wouldn't have when doing native development, but they are solvable (except you won't be able to use MSVC on Linux)

                          T 1 Reply Last reply 5 Mar 2017, 10:03
                          1
                          • K Konstantin Tokarev
                            5 Mar 2017, 08:33

                            @tomy To develop for iOS (tvOS, watchOS as well) you have to use macOS. Everything else is possible to do on Linux.

                            Windows development on Linux may give you some troubles that you wouldn't have when doing native development, but they are solvable (except you won't be able to use MSVC on Linux)

                            T Offline
                            T Offline
                            tomy
                            wrote on 5 Mar 2017, 10:03 last edited by tomy 3 May 2017, 10:05
                            #12

                            @Konstantin-Tokarev
                            Thanks.
                            I want to write apps for iPhone and iPad (mostly iPhone). So if I can develop apps for Linux, Android and iPhone all on a Linux dist like Ubuntu, it's a really good news. :-)
                            Just tell me how to do it please?

                            For Windows, it's not that important. I can have a dual boot (a windows and a Linux) and for the windows apps I use the windows platform itself.

                            A 1 Reply Last reply 5 Mar 2017, 20:08
                            0
                            • T tomy
                              5 Mar 2017, 08:08

                              @ambershark

                              Do you use a Linux to write apps for Windows, Linux and iOS (or even Android as well)!? That is, is it possible to write apps for iOS on a non-iDevice!? Or even for Windows on a Linux!?

                              I guess these may not be impossible, but there may be bugs in developing various types of apps this way. For example, although developing Android apps on Windows is possible, I faced a bug when testing a simple Qt Quick app on an emulator!
                              Then, I was told if I use a Linux for writing Qt Quick apps, that bug is fixed there. And that was the reason I tried to know all the benefits of moving to Linux.

                              A Offline
                              A Offline
                              ambershark
                              wrote on 5 Mar 2017, 20:06 last edited by
                              #13

                              @tomy Absolutely... I write all my code in my native OS which at this time is Linux.

                              Then I compile and test on the target platform. So I develop and test mostly on linux but then before releases I build and test on OSX and windows (same code base).

                              If there are problems I fix them before release. I spend very little time outside linux though.

                              As for iOS and android. I don't do mobile development much but the library I wrote for android/ios was indeed developed primarily in linux and only tested on the target devices.

                              You can build android and linux on linux. iOS and OSX on osx, and windows phone/windows desktop on windows. I don't think Qt supports windows phone, but the mobile project I did we went raw rather than using Qt.

                              My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

                              1 Reply Last reply
                              1
                              • T tomy
                                5 Mar 2017, 10:03

                                @Konstantin-Tokarev
                                Thanks.
                                I want to write apps for iPhone and iPad (mostly iPhone). So if I can develop apps for Linux, Android and iPhone all on a Linux dist like Ubuntu, it's a really good news. :-)
                                Just tell me how to do it please?

                                For Windows, it's not that important. I can have a dual boot (a windows and a Linux) and for the windows apps I use the windows platform itself.

                                A Offline
                                A Offline
                                ambershark
                                wrote on 5 Mar 2017, 20:08 last edited by
                                #14

                                @tomy said in What are the benefits of Qt programming on Linux rather than Windows:

                                @Konstantin-Tokarev
                                Thanks.
                                I want to write apps for iPhone and iPad (mostly iPhone). So if I can develop apps for Linux, Android and iPhone all on a Linux dist like Ubuntu, it's a really good news. :-)
                                Just tell me how to do it please?

                                For Windows, it's not that important. I can have a dual boot (a windows and a Linux) and for the windows apps I use the windows platform itself.

                                To do this you would have to use Qt. Since your Qt code can be used on android as well as ios, you could develop on Linux. You would of course have to actually build it on OSX for deployment and testing on actual iOS devices though.

                                If you went native you would not be able to develop iOS on anything but a mac. I mean you could still write the code but actual building would have to be done on osx.

                                You can still use linux, but you would need to have a mac server or something to ssh and build though. So if you are doing raw iOS development just get a mac. If you are going cross platform, use whatever you like (again I prefer linux these days). :)

                                My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

                                1 Reply Last reply
                                1
                                • T Offline
                                  T Offline
                                  tomy
                                  wrote on 5 Mar 2017, 20:47 last edited by
                                  #15

                                  To simplify the issue and offer a simple, right, concise and useful answer we say:

                                  Apps for Windows: using Qt (C++) on a Windows host
                                  Apps for android: using Qt Quick on a Windows/Linux host
                                  Apps for Linux: using (a related version of) Qt (Creator) on a Linux host
                                  Apps for iOS: using (a related version of) Qt (Creator) using an Apple device running Mac Os x.

                                  I think you agree?

                                  1 Reply Last reply
                                  0
                                  • SGaistS Offline
                                    SGaistS Offline
                                    SGaist
                                    Lifetime Qt Champion
                                    wrote on 5 Mar 2017, 20:50 last edited by
                                    #16

                                    Hi,

                                    Not quite:

                                    Apps for android: on a Windows/Linux/macOS host

                                    You might be able to cross-compile from Linux to Windows but that has other implications.

                                    Interested in AI ? www.idiap.ch
                                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                    1 Reply Last reply
                                    1
                                    • ? Offline
                                      ? Offline
                                      A Former User
                                      wrote on 5 Mar 2017, 20:53 last edited by
                                      #17

                                      T 1 Reply Last reply 5 Mar 2017, 20:55
                                      2
                                      • ? A Former User
                                        5 Mar 2017, 20:53

                                        T Offline
                                        T Offline
                                        tomy
                                        wrote on 5 Mar 2017, 20:55 last edited by tomy 3 May 2017, 20:58
                                        #18

                                        @Wieland
                                        I'd seen this, but when I hear that I can use a Linux for iOS apps, questions will appear.

                                        So to give an answer for my original question, I say: "no advantages unless I'm developing for Linux and not Windows".

                                        ? 1 Reply Last reply 5 Mar 2017, 20:58
                                        0
                                        • T tomy
                                          5 Mar 2017, 20:55

                                          @Wieland
                                          I'd seen this, but when I hear that I can use a Linux for iOS apps, questions will appear.

                                          So to give an answer for my original question, I say: "no advantages unless I'm developing for Linux and not Windows".

                                          ? Offline
                                          ? Offline
                                          A Former User
                                          wrote on 5 Mar 2017, 20:58 last edited by
                                          #19

                                          @tomy The table is the definitive answer. Other combinations might be possible, but are not officially supported.

                                          1 Reply Last reply
                                          1
                                          • T Offline
                                            T Offline
                                            tomy
                                            wrote on 5 Mar 2017, 21:03 last edited by
                                            #20

                                            Thank you all. The problem is solved I think. I up vote all answers to appreciate your help.

                                            1 Reply Last reply
                                            0

                                            9/20

                                            5 Mar 2017, 04:46

                                            • Login

                                            • Login or register to search.
                                            9 out of 20
                                            • First post
                                              9/20
                                              Last post
                                            0
                                            • Categories
                                            • Recent
                                            • Tags
                                            • Popular
                                            • Users
                                            • Groups
                                            • Search
                                            • Get Qt Extensions
                                            • Unsolved