Your application has a GUI, and which one (native / Qt / Gtk +)?
If not, then the problems that need to be observed (compared to Linux) are mainly related to the dynamic area of communications. OS X uses "-dylib" and "-bundle" and actually has two types of dynamic libraries (loadable at run time and normal). Linux has only one look (-extended), and in any case it is weaker.
If your application has a graphical interface, you need to transcode all of this into Cocoa using Objective-C. This means that you will also become a new language. Some people (like MS) used Carbon (C ++ API), but it is gradually phasing out. I would not recommend this for new projects.
Best to use Qt or Gtk +. The Gtk + threshold was announced a few days ago (see Imendio ).
ps OS X, of course, launches the X11 binaries, but moving to any of your clients can be a daunting one. They are used to the Aqua interface and are productive with it. Consider X11 only a very short-term solution.
pps The number of additional open source libraries shipped with OS X is limited and may not be available. If on Linux you can easily require that users have “libxxx vyy” installed, OS X has several approaches to packaging (fink, macports), and for a commercial tool it is expected that the required libraries will be contained in the application. OS X offers “application packages” and “frameworks” for this (local copies, which makes the application self-sufficient). There is no such concept in Linux. It will also greatly affect your build system; maybe you want to try something like SCons for all platforms?
source share