Use Maven to build cross compilation for mac, window, linux - linux

I wonder if it is feasible to use maven to build cross compilation for mac, windows, and linux. It is for building a ODBC client project. Currently, I have separate make files for 32, 64bit, linux and mac.
Please, offer any advantages and disadvantages you might think of.
We use C/C++, gcc49, gdb.
Thank you so much.

Related

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.

Running Qt application built for Linux, on windows

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.* .

Can I compile and run a linux app C++ source on Windows?

I have source code for a linux application. It seems I can compile it on windows with CygWin. My question is, after compilation, can I run it on Windows?
Depends totally on what APIs you use. If you stick to C standard library things, like <stdio.h>, <stdlib.h>, etc. then yes, you can just compile and run on either OS. Or for C++ apps, there is the Standard C++ Library, which any OS / development environment should provide.
If you use any OS-specific APIs, then of course it will not be compatible with another OS. There are libraries however, like APR that try to abstract out the OS-specific bits.
From a casual glance at the code you've linked to, it appears to not use any OS-specific APIs. However:
Note that this code requires the Gnu Scientific Library, http://www.gnu.org/software/gsl/
you'll need to get that library installed as well.
The simple answer is yes; if you can compile a Linux application with Cygwin, then the compiled application will run on windows. Cygwin provides windows implementations of many unix system functions and libraries.
Cygwin/mingw(http://www.mingw.org/) should have most of the tools you need to build the binary. Once the build succeeds, you can run the binary (only) on windows.

Compile Unix code for WindowsCE

I'm working on a library which was intended to use on Linux-only machines. So I choosed GNU autotools for build system and did everything with only Unix-like OSs in mind. After a while, we needed to port the library to Windows. Thanks to CygWin everything compiles and works fine. Now we need to provide the library for WindowsCE. Is this possible? I think CygWin does not support WinCE. Do I need to re-write the library for WinCE?
Cygwin does not support WinCE, so you will need to port your code to WinCE APIs.

Building Solaris packages on Linux?

One of our projects is a cross-platform piece of code. We build it on Windows, Linux, and Solaris/SPARC mostly. Of the 3, we deal with Solaris the least and it's a maintenance pain to keep our SPARC box up and running and in general Solaris administration is not our competency.
A few years back I built a working cross-compiler for SPARC64 on Linux, and that part worked great. What stopped us from going forward was the last part of our build process, which involves building a Solaris package with pkgmk and pkgtrans.
I was never able to find a Linux solution for building pkg files that can be installed on SPARC Solaris -- does anyone know if one exists today?
I have personally used the tools from Heirloom project: http://heirloom.sourceforge.net/
The idea was to cross compile for Sparc on a faster Linux machine and build also the package.
I don't know that anyone has done the work to build it on Linux, but Sun has released the pkgmk sources as part of the OpenSolaris source base.
See https://hg.java.net/hg/solaris~on-src/file/tip/usr/src/cmd/svr4pkg/ for the source to the entire suite of SVR4 pkg* commands, though it may have dependencies on other libraries as well.

Resources