Running Qt application built for Linux, on windows - linux

I have a Qt application which I built on Linux. I would like to run the same application on Windows. Is it possible? If yes, how? The Qt application software that I downloaded and used, is version 4.7.4.

Is it possible? If yes, how?
Yes, it is possible if the application is cross-compiled for Windows target on Linux.
You would need to have the mingw compiler installed on the Linux box when building the application for Windows. You would also need to make sure to use the proper `-mkspec- option for qmake.
If this is missed while building the application on Linux, it is probably not cross-compiling, so you would not be able to run the code on Windows off-hand unless you have a virtual machine installed for Linux, in which case you could do it, for sure.

You can install a Windows alongside your Linux and install VS2010 and Qt 4.8.* libraries for windows and compile your project there. You may need to make some changes to your source code in order to be compatible with Qt 4.8.* .

Related

How to run .Net core WinForms application on Linux

So I have created a test .net core 3.1 WinForms application on Windows. It's an .exe application. I have copied it to my Debian VM and installed .net core 3.1 runtime. When I double click on it to run then I get the following screen:
How do I run this .exe application?
I would have commented to ask first but I don't have that privilege.
Do you have anything installed to run exe applications? If not, try installing a compatibility layer such as Wine for Debian which would allow your system to understand the format. From my research, Wine should be able to interpret your .net core version.
If you already have Wine, then just ignore me :)
You need to take your source code to a linux machine and compile it there with Mono. EXE files will only run with a compatibility layer like wine. See https://markheath.net/post/running-windows-forms-on-linux-with-mono for an explanation how to compile .net applications with winforms for linux

Labview .VI application from Window to Linux application

Due to now I just finish my application .VI and compile .exe (Windows with Labview).
Then if I want to take my application from windows to linux. And running on linux without MONO or Wine. Because I want to interface with NI-6008.
How can I do?(Step by step)
Please help me. Thank You.
AFAIK, LabVIEW does not offer Windows->Linux cross-compilation e.g. see here. So you must have a licensed and installed version of LabVIEW for Linux. Then you move the project files (or just the VI file) and build it anew in Linux.
If you have the NI LabWindows™/CVI™ Run-Time Module for Linux, you use a Windows machine to compile to supported Linux distributions.

Deploy to Linux

Background:
Im using QT and have visual studio 2012 as my IDE (used the QT plugin for visual studio).
And finally the whole project is done. However due to my .NET background I have no experience when it comes to deploying my project so it can be run on Linux.
Question:
Anyone knowing how to deploy a QT project made in visual studio to linux?
You should install Linux and prepare a Qt development environment on it.You can then copy your project there, compile it and see the results in the real environment. This way you can cope with the minor differences when porting from one OS to another easily.
So don't think of cross compiling your app for Linux on Windows. From a complexity point of view, I think setting up a Linux machine (VM or not) and the necessary environment for Qt is a whole lot simpler than cross compiling bug hunting afterwards. After all you will need a real target environment to finally test your application.
Before you can deploy something you have to compile it for that platform, and here you have two main choiches: either you cross-compile which means you compile it on windows using a set of tools so that your software is built to run on a linux, or you get a linux machine, you copy your entire project over and let Qt for linux do the magic.
Once you have your working binary compiled on linux or for linux then you start thnking about deployoment.
If you really want to be fully linux-compatible and "linux-ally correct" you should distribute your source-code precooked using some tools like "automake" that will make it possible to linux users to compile it on any linux version.
If you do not want to release your source code, you technically can distribute binaries without source code (not sure if you will be ok with licenses) but you have to be aware that there is no standard in linux for distributing binary packages, there are at least 2 main package building standards that are the ubuntu/debian style and red hat (and friends) style.
You are going to find plenty of documentation about all this stuff from cross-compile to automake and of course building debian packages and building red hat rpm packages.

Can i use windows libraries in linux and vice versa?

As per my knowledge, windows uses .lib and .dll extension for libraries and linux uses .a and .so. I am working on a project in ubuntu for manipulation with jpeg image files. so i want to know if these libraries can be used interchangeably in linux and windows? for example if have created example.so library in ubuntu and now i want to use it in some compiler in windows...
If you're planning on running under Wine, then yes.
Otherwise the chances are small. Windows DLLs will most probably use Windows APIs not available on Linux. Even if they're not the DLLs are built for use with compilers running on Windows.
Why not use imagemagick? http://www.imagemagick.org/script/index.php

What is Cygwin and how to use it in relation in Android NDK

Hi I am new to android NDK Devlopment.I downloaded Android NDK 4 for windows.I read through the docs.But i am not clear with it.
First thing is that,I want to develop the native file which may be c 0r c++.I think Using Cygwin will come to play.I dont have any idea or how to use cygwin .From the Docs i just read Cygwin is required for Windows platform.Apart from it ,i dont have any knowledge about it.
Not yet started with NDK Concepts.Help Required
Cygwin is a way to make Windows support some linux functionality. If you install cygwin on your windows machine you'd be able to run some linux software on windows (you'd have to recompile it especially for cygwin though). You can find it and more information about it here. There's also a good explanation at the wiki page here.
If the Android NDK needs it I suppose the Android NDK needs some linux functionality or tools to work properly. The other option might be to install Linux on a machine and run the Android NDK on there, it might be better since I assume Linux is the native environment for Android NDK development.
Since you're saying that you're a bit unclear about the NDK, you should probably be aware that as far as I understand you can not build a whole Android app using it, you can only develop bits of it, you will still need to develop at least part of the app to run on top of the Dalvik virtual machine, which, as far as I know, means that you'll have to write that bit in Java. In general I think that you should develop Android apps only in Java unless there is a specific reason to build certain parts of it using the NDK.
From wiki:
Cygwin (pronounced /ˈsɪɡwɪn/,[2] SIG-win) is a Unix-like environment and command-line interface for Microsoft Windows. Cygwin provides native integration of Windows-based applications, data, and other system resources with applications, software tools, and data of the Unix-like environment. Thus it is possible to launch Windows applications from the Cygwin environment, as well as to use Cygwin tools and applications within the Windows operating context.
Cygwin consists of two parts: a Dynamic-link library (DLL) as an API compatibility layer providing a substantial part of the POSIX API functionality, and an extensive collection of software tools and applications that provide a Unix-like look and feel.
So, Cygwin is a set of tools which allows you to emulate a unix-like (or linux) environment on your windows machines.
The NDK is the Android Native Development Kit. It allows you to write parts of your application in native code (C/C++) and integrate them into your application. Your application still runs under the Dalvik VM but it can load shared objects creating using a cross compiler. The NDK contains all the necessary tools and build scripts to generate native code binaries. It's an advanced concept and one you should probably wait on until you fully understand the architecture.
The reason why it requires Cygwin (or some flavor of linux) is because it uses GnuMake and other linux tools such as awk or Nawk. These tools are not available (or are really hard to use) on windows platforms, hence the need for at least Cygwin (though I would advise you do yourself a favor and just install linux).

Resources