当前位置:  开发笔记 > 编程语言 > 正文

如何在Linux或Windows中编译OS X?

如何解决《如何在Linux或Windows中编译OSX?》经验,为你挑选了4个好方法。

我想将我的C/C++应用程序移植到OS X.

我没有Mac,但我有Linux和Windows.这有什么工具吗?



1> Viktor Latyp..:

对于Linux,有一个预构建的GCC交叉编译器(来自公开提供的Apple修改后的GCC源代码).

https://launchpad.net/~flosoft/+archive/cross-apple

2015年更新

    经过这么多年,行业标准IDE现在支持OSX/iOS/Android.

http://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014/311

    Embarcadero的RadStudio还支持在Windows上构建OSX/iOS/Android应用程序.

    此答案由托马斯还提供了一个交叉编译工具.

对于所有这些选项,您仍然需要一个真正的mac/i设备来测试应用程序.


它是一个完全有效的GCC 4.2,能够编译大型库.但是,它尚未针对10.7,10.8或10.9 SDK进行更新,因此现在可以将其视为过时的.我一直用它来编译我自己的C/C++项目,只是为了测试它是否可以被移植并修复一些明显的不兼容性,然后我在真正的mac上构建它.

2> Thomas..:

我创建了一个名为OSXCross的项目,旨在从Linux中定位OS X(10.4-10.9).

它目前支持clang3.2到3.8(主干)(你可以使用你的dist clang).
此外,您还可以构建最新的香草GCC(4.6+).

LTO也适用于两者clangGCC.

目前使用cctools-870和ld64-242.

https://github.com/tpoechtrager/osxcross



3> Brian Campbe..:

似乎已经编写了一些脚本来帮助您为Mac设置交叉编译; 我不能说它们有多好,或者对你的项目有多适用.在文档中,他们参考了10.4的交叉编译这些指令,以及这些指令用于交叉编译10.5; 这些说明可能比脚本更有用,具体取决于脚本符合您的需求的程度.

如果您的程序是免费或开源软件,那么您可能希望创建一个MacPorts端口文件(此处的文档),并允许您的用户使用MacPorts构建您的程序; 这通常是在Mac OS X上安装便携式免费或开源软件的首选方式.过去已知MacPorts可以在Linux上运行,所以有可能在Linux上开发和测试你的Portfile(虽然它显然需要在Mac上测试).


或者现在自制软件而不是macports.

4> Trevor Boyd ..:

    获取" VMware Player "

    获取" Mac OS X vm image "

    在新操作系统上编译/调试/集成并测试您的代码,以确保一切正常


当您尝试在多个平台上运行时,您必须在目标平台上编译/运行/集成/测试.你不能只在一个平台上编译/运行然后说"哦,它应该在另一个平台上工作相同".

即使使用像Java这样非常好的跨平台语言,您也会遇到问题,而在其他平台上它将无法完全相同.

我发现尊重我的时间/生产力/能力以在多个平台上快速迭代的唯一方法是使用其他平台的VM.

还有其他解决方案,如双启动和我没有提到的解决方案,但我发现它们不尊重我的生产力/时间.

以双启动为例:

    我在OS 1上做了一个改变

    重启进入OS 2

    忘了OS 1上的东西

    重启进入OS 1

    在OS 1上进行更改

    重新启动到OS 2 ... 再次 ...

BAM有30分钟的时间,我没有做任何有成效的事情.


更不用说我的大脑失去了所有缓存一致性,需要慢慢重新缓存我需要做的所有事情......而且当Web浏览器意外打开时,很可能会失去工作效率.
重启所花费的时间不仅仅是启动时间,关闭时间,重启守护进程,设置开发环境,检查您是否还有最新的版本控制系统结账等等.
它可能在技术上违反随机许可协议,但您可以随时购买Mac Pro并使用其上的VM运行所有三个操作系统.那么为什么你不能买一个漂亮的Windows盒子并做同样的事情呢?允许其他任何事情都是反竞争的做法,在我的书中,完全是非法的(或应该是).
当3个靴子需要30分钟时,你需要新的硬件; 并且可能是从另一个操作系统访问和编辑一个操作系统文件系统的能力.但我理解这种观点并且更喜欢VM,因为它们允许我将它们视为专用物理机器.
@MartinKällman它违反了Apple许可协议.合法性取决于您所在的国家/地区.
推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有