对于即将推出的项目,计划将在Windows和Linux上编译的现有C++代码移植到MacOS(leopard).该软件是命令行应用程序,但可能会计划GUI前端.MacOS使用g ++编译器.通过使用与Linux相同的编译器,似乎不存在任何问题,但总会有.
在港口期间是否有任何建议或问题需要注意?
你的应用程序是否有GUI,以及哪一个(native/Qt/Gtk +)?
如果没有,需要注意的问题(与Linux相比)主要在动态链接区域.OS X使用'-dylib'和'-bundle',实际上有两种动态库(运行时可加载和正常运行).Linux只有一种(共享),并且在此方面更宽松.
如果你的应用程序有GUI,你需要使用Objective-C在Cocoa中重新编写整个内容.这意味着你也将成为一门新语言.有些人(比如MS)使用过Carbon(C++ API),但它正在逐步淘汰.我不建议新项目.
你最好的运气是使用Qt或Gtk +.几天前(重新)宣布了一个原生的Gtk +端口(参见Imendio).
ps OS X当然也会运行X11二进制文件,但将其推送给任何客户可能都是一条艰难的道路.他们已经习惯了Aqua界面,并且很有效率.考虑X11只是一个非常短期的解决方案.
pps OS X附带的开源外接库的数量有限,而且它们的版本可能缺乏.在Linux中,您可以轻松地要求用户安装"libxxx vyy",在OS X中有多种打包方法(fink,macports),而对于商业工具,所需的库应该包含在应用程序中.OS X为此提供了"应用程序包"和"框架"(本地副本,使应用程序自给自足).Linux没有这样的概念.这对你的构建系统也有很大的影响; 也许你会想为所有平台尝试像SCons这样的东西?