There are a couple of various decisions for porting Objective-C/Cocoa applications to Windows. Every alternative has specific focal concentrations and offers specific limits. In this post, I'll give an examination of some of these decisions, their remarkable conditions and weights. - Xcode Alternative for Windows 7


In this post, I'll take a gander at the decisions open for porting Objective-C/Cocoa applications to Windows. There are particular structures for making amassed programs that are relied on to be profitable over various stages (Qt, WxWidgets, Java, unadulterated charge line C, and so on) and arranged virtualized conditions that are unavoidably design free (Java, Mono, and so forth) however this is a Cocoa blog so I will neglect these.

A notice: porting programming from the Mac to Windows is inadequate and this post is not planned to settle those perilous conditions. On the off chance that you port an Objective-C program to another stage, plan to pass on a far reaching measure of programming by systems for the charge line, find bugs in libraries you didn't submit and handle sporadic and bewildering mistake messages at each stage. Keeping an average codebase over various stages is amazing over the long haul however can genuinely be slower than a total re-write to set up regardless.

Copying POSIX on Windows

Before I truly get to looking Objective-C/Cocoa assignments to Windows, I have to investigate the objective condition. In particular, the heaviness of getting the POSIX layer from the Mac to keep running on Windows.

A huge amount of what is recognized to be "standard C" on the Mac really falls outside the brisk standard C library and is a touch of the BSD structure on the Mac. TCP/IP affiliations, many record I/O calls, getting data about the present client; these are by and large properties of the BSD-picked POSIX layer on the Mac.

The oversee issue to get a handle on when porting to Windows routinely sets needing to supplant this BSD inferred handiness. The short answer is that you now and again require an API that will offer you POSIX-like direct on Windows.

By and large, this obliges one of two strategies: Cygwin or MinGW.


Cygwin is the better mulled over the two since it is proposed as a client condition. It means to go over a full POSIX structure, with full POSIX closeness over Windows. Many ports of X-Windows applications from *nix frameworks (Linux, UNIX, and so forth) to Windows keep running over Cygwin in light of the way that it comes the nearest to offering source-level resemblance with *nix structures.

Everything considered, Cygwin continues running with a check: on the off chance that you diagram your errand utilizing Cygwin, by then your client should in like way have Cygwin appeared. Cygwin is not by any interface of as far as possible an approach to manage administer shape neighborhood Windows applications, it is an approach to manage regulate make close-by Cygwin applications (and Cygwin keeps running over Windows).


The disconnecting decision to Cygwin is regularly MinGW. MinGW is not a client broaden like Cygwin. Regardless of the way that MSYS - a light terminal and client structure - can be keep running on MinGW, everything considered the MSYS condition is beginning late utilized by facilitators for building and testing applications, not by end clients.

MinGW utilizes a substitute side interest to Cygwin concerning appreciation the POSIX subsystem: MinGW endeavors to execute those parts of a POSIX structure that can be fittingly mapped onto calls inside the zone WIN32 API on Windows. This has the creature favored perspective that your objective clients needn't dally with anything adjacent to Windows displayed. Shockingly, it in like manner endorses that a couple of highlights (like affiliations) will act barely especially in light of the way that they will agree to the close to Windows sharpens, as opposed to the standard POSIX sharpens.

Where Cygwin programs are expectedly advanced toward Windows, MinGW mixes immense help for cross-assembling so you can create Windows applications from various stages.


The brisk way to deal with oversee control assembling an Objective-C program for Windows is to utilize Apple's own particular CoreFoundation APIs and Objective-C runtime and design them for Windows.

CoreFoundation and the Objective-C runtime are both open source under Apple's APSL permit:


CFNetwork (from Mac OS X 10.4 - later structures not open source)


Objective-C runtime

Security -

This strategy is not true blue "Cocoa" (it is beginning late the to an awe-inspiring degree clear subset of CoreFoundation and two or three supporting systems) notwithstanding it has the fundamental favored point of being effective, all around attempted and kept up by Apple.

If all else fails, Apple themselves have a guide on the most able structure to utilize these records to add up to on Linux and Windows under Cygwin. You can in like route take a gander at an other setup process on CFLite