我想将C / C ++应用程序移植到OSX。
我没有Mac,但有Linux和Windows。有什么工具吗?
Answers:
对于Linux,有一个预建的GCC交叉编译器(来自可公开获得的Apple修改后的GCC来源)。
https://launchpad.net/~flosoft/+archive/cross-apple
2015年更新
http://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014/311
对于所有这些选项,您仍然需要真正的Mac / i设备来测试应用程序。
我创建了一个名为OSXCross的项目,旨在针对Linux上的OS X(10.4-10.9)。
它目前支持clang
3.2到3.8(主干)(您可以使用dist的clang
)。
此外,您还可以构建最新的香草GCC
(4.6+)。
LTO工程,以及,两个,clang
和GCC
。
当前使用cctools-870和ld64-242。
当您尝试在多个平台上工作时,绝对必须在目标平台上进行编译/运行/集成/测试。您不能只在一个平台上编译/运行,然后说“哦,它应该在另一平台上也可以工作”。
即使使用像Java这样的非常好的跨平台语言,您也会遇到在其他平台上无法完全相同地工作的问题。
我发现尊重我在多个平台上快速迭代的时间/生产力/能力的唯一方法是使用其他平台的VM。
还有其他一些解决方案,例如双引导,还有我没有提到的解决方案,但我发现它们不尊重我的工作效率/时间。
以双启动为例:
BAM花费了我30分钟的时间,但我没有做任何有成效的工作。
苹果的发展本身就是一个奇怪的野兽。OS X使用GCC端口并进行了一些修改,使其具有“ applet”的风格。从理论上讲,可以获取Apple GCC和工具链以及Apple内核和库标头的源,并可以在Windows计算机上构建交叉编译器。
为什么您要走这条路,这超出了我。您可以从600美元购买便宜的Mac mini。无论如何,您花费大量的时间使交叉编译器正常工作(尤其是使用Windows主机(用于Unix工具))可能要花费600多美元。
如果您真的很想让您的应用跨平台研究Qt,wxWidgets或FLTK。全部都提供对跨平台的支持,而对基本代码的更改却很少。至少,您要做的就是找到一台Mac来在其上编译您的应用程序,如果您有一些技术精湛的朋友不介意让您通过SSH访问Mac的话,这并非难事。
我在网上找到了这个小文档:http : //devs.openttd.org/~truebrain/compile-farm/apple-darwin9.txt
这正是您想要的。我自己对此感兴趣,但是还没有测试(10分钟前找到它)。文档似乎不错,但是。
您可以从该网站在云中租用Mac。您可以从$ 1租用它们,这应该足够了(除非您需要root访问权,否则您的价格在$ 49 +)。
有一些交叉编译器设置,但是几乎所有它们都用于distcc样式的分布式编译。据我所知,如果没有Mac,就无法直接针对Mac平台。您可以不借助QT或wxWidgets而获得的最接近的是带有GNUStep或类似功能的OpenStep,但这不是真正的Cocoa平台,非常接近。