Decent cross-compiler for Mac OS X targets - c++

I'm developing an SDL application in C++, and some of my consumers have asked for a version that runs on Mac OS X. I am wondering if anyone knows of a good cross-compiler for Mac OS X targets, and maybe a Mac OS X emulator (maybe a virtual HDD for Virtual Box?) so that I can actually test it myself.The emulator is not 100% necessary though, as it's probably illegal and I can understand if nobody's willing.
I'm using a PC (Windows XP) for my host machine, and I don't have the funding to go and purchase a Mac, sadly.

The easiest, and most common, solution is the other way: use a Mac platform with Windows installed either as dual boot or in a virtual machine.
That way you will benefit of 100% of both worlds and never be bothered whenever a Mac system update is delivered.
Bonus: You can install Linux as well.

Related

If I develop an app FROM Microsoft in C++ Targeting Linux, are Miscrosft library good?

The situation is this:
I do not have access to a machine running on Linux, just a little embedded platform where I cannot install any IDE (which is in LINUX and is my target), so I got to develop the app from my Microsoft PC.
The question is: should I use Microsoft libraries? Because I am developing in a Microsoft environment, or should I use Linux libraries? Because my target is Linux?
Applications targeting Windows do not work out-of-the-box in a Linux system (see some discussion here https://superuser.com/a/209736).
You could, however, use a Linux guest from the Windows host, through a virtual machine or even docker.
Also, your "little chip target on which you cannot install an IDE" sounds like an embedded platform. Make sure the architecture on the target is the same as your windows pc x86-64 (intel). Many embedded platforms have a different architecture (e.g., ARM's aarch64). In this case, make sure to use an appropriate cross-compiler that will create code for the target.

Compile BlueZ for iOS7?

I am currently trying to create a PAN on a jailbroken iOS device (iPad, in this case). On my Raspberry Pi I can achieve this using the bluez bluetooth stack and the pan daemon that comes with it. I thought if it could be possible to port bluez to the iOS device, unfortunately I don't really know enough about compiling - besides compiling stuff using a makefile I didn't do much in that regard.
I was able to get a gcc compiler onto the iPad using BigBoss's "installsdk3", but if I try to run configure on bluez it gives me Compiler cannot create executables.
Does anybody know if this is possible, how or can give me directions how this could be achieved? I know that xcode on the mac comes with a c++ compiler for iOS, but I couldn't really find out how to get the makefile to make use of it.
Bluez is specifically a Linux bluetooth stack. OS X and iOS are based on BSD which though similar to Linux is not the same. I very much doubt you can run bluez on iOS.
Instead look into Apple's own bluetooth stack.
https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/AboutCoreBluetooth/Introduction.html
BlueZ is the user mode part of the Bluetooth stack. It depends on a kernel mode component, which exists in the Linux kernel but not BSD (as mentioned in other answers, what Mac OS is based on). Hence BlueZ cannot work with a Mac OS kernel.
AFAIK, there is no way to run Mac OS with a Linux kernel.

How can I test my C++ program on various platforms?

What would be a practical way to test a C++ program on various platforms? Even within an operating system, I would like to test it on different versions (e.g., OS X 10.7, 10.8, 10.9, etc). I have access to a handful of machines that run on either Windows, Linux, or Mac OS X, but have a specific version installed. Assume I can compile the program on that platform.
Create virtual machines (VirtualBox, VMWare Player) for those systems and different versions.
Of course this may depend on specific hardware requested by your software.

What hardware / software do I need to port my C++/wxWidgets app to the MAC?

I have a C++/wxWidgets codebase and I'm starting to think about porting it across to Linux and the Mac OS X.
What hardware / software do I need (or is recommended) to code on the Mac platform? Currently I use Visual Studio to develop in and Innosetup to do my packaging.
The Mac equivalent of Visual Studio is Xcode (assuming you have a Mac :-), which includes the Mac port of gcc.
http://developer.apple.com/xcode/
For Mac development, the simplest and easiest solution is to use Xcode on Mac OS X.
You might be able to virtualize that on your Windows box, or install it as second OS depending on your hardware, but the path of least resistance is to develop with an actual Mac in front of you.
You can use IMCROSS to set up an environment for targeting Windows and MacOS X from Linux.

Compiling a Qt application for Mac OS X on Linux

I'm developing a Qt application and I need to support Linux, Windows and Mac OS X. The only problem however is that I do not own a Mac. Is it possible to compile my application for Mac OS X on Linux and package it in a .dmg file?
I'm also worried with the fact that my application depends on OpenSSL, can I compile OpenSSL for Mac OS X on my Linux machine?
Thank you.
How do you want to support Mac if you can't even test if your software works?
Cross-compilation for OS X: I doubt there is any solution out there (I'd love to learn about it if it is), you'd need the whole SDK and toolchain for that.
For the .dmg file creation part, there is another question here:
How to build a dmg Mac OS X file (on a non-Mac platform)?
There should be no need to bundle openssl, as it's part of every OS X installation.
If you want to support Mac you need to Mac, access to one (remote, rented etc.), or someone who does it for you. I don't think you have another choice.
As the accepted answer in
How to Compile for OS X in Linux or Windows?
suggests, you can go for Macports in case you develop free software. It does the compiling on the user's machine (think FreeBSD ports or Gentoo's emerge). Still, that will require testing.