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

C++ 如何在Linux或Windows中编译OS X?,c++,c,macos,cross-compiling,C++,C,Macos,Cross Compiling,我想将我的C/C++应用程序移植到OS X 我没有Mac电脑,但我有Linux和Windows。有什么工具可以做到这一点吗?无论如何,你肯定需要OSX。即使你没有Mac电脑,你也可以尝试一些。你需要一个工具链来交叉编译mach-o,但即使你有了它,你也不会有苹果库来开发。不幸的是,我不确定如果没有它们,您将如何进行移植。似乎已经编写了一些代码来帮助您为Mac设置交叉编译;我说不出它们有多好,也说不出它们对你的项目有多适用。在文件中,参考10.4的交叉编译和10.5的交叉编译;这些说明可能比脚本更

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


我没有Mac电脑,但我有Linux和Windows。有什么工具可以做到这一点吗?

无论如何,你肯定需要OSX。即使你没有Mac电脑,你也可以尝试一些。

你需要一个工具链来交叉编译mach-o,但即使你有了它,你也不会有苹果库来开发。不幸的是,我不确定如果没有它们,您将如何进行移植。

似乎已经编写了一些代码来帮助您为Mac设置交叉编译;我说不出它们有多好,也说不出它们对你的项目有多适用。在文件中,参考10.4的交叉编译和10.5的交叉编译;这些说明可能比脚本更有用,这取决于脚本是否适合您的需要


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

苹果开发本身就是一只怪兽。OSX使用了一个GCC端口,并进行了一些修改,使其成为“appley”。理论上,可以将源代码添加到Apple GCC和工具链以及Apple内核和库头,并在Windows机器上构建交叉编译器

我不明白你为什么要走这条路。你可以从600美元买一台便宜的MacMini。无论如何,您为使交叉编译器正常工作(尤其是在Windows主机上使用Unix工具)所花费的时间可能会超过600美元


如果你真的很想让你的应用程序跨平台,看看Qt、wxWidgets或FLTK。所有这些都提供了跨平台的支持,只需对基本代码进行最小的更改。至少这样,你所需要做的就是找到一台Mac电脑来编译你的应用程序,如果你有一些有技术头脑的朋友,他们不介意让你用SSH访问他们的Mac电脑,那么这并不难。您将需要使用跨平台库,如。有像QtCreator这样的IDE,它可以让您在一个操作系统上开发,并为其他操作系统生成Makefiles。有关跨平台开发的更多信息,请查看的跨平台剧集(请注意,该系列还没有结束,新剧集似乎每周都会出现)


正如其他答案所解释的,你可能可以在Windows或Linux上为Mac电脑编译,但你无法测试你的应用程序,因此如果你在做专业编程,你可能应该花600美元购买Mac电脑,或者,如果您正在使用开源软件,请找一位拥有Mac的开发人员来帮助您。

有一些交叉编译器设置,但几乎所有这些设置都适用于distcc风格的分布式编译。据我所知,如果没有Mac电脑,就无法直接瞄准Mac平台。不借助QT或wxWidgets,最接近的是带有GNUStep或类似功能的OpenStep,但这不是一个真正的Cocoa平台,只是非常接近

  • 得到“”
  • 得到“”
  • 在新操作系统上编译/调试/集成并测试代码,以确保一切正常

  • 当您试图让某些东西在多个平台上运行时,您必须在指定的平台上编译/运行/集成/测试。你不能只在一个平台上编译/运行,然后说“哦,它应该在另一个平台上工作”

    即使使用像Java这样非常好的跨平台语言,您也会遇到一些问题,在另一个平台上,它的工作方式并不完全相同

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

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

    以双启动为例:

  • 我在OS 1上进行了更改
  • 重新启动到操作系统2
  • 在OS 1上忘记一些事情
  • 重新启动到操作系统1
  • 在OS 1上进行更改
  • 重新启动到操作系统2。。。再次

  • BAM我花了30分钟的时间,却没有做任何有成效的事情。

    我在网上找到了这个小文档:


    这正是您想要的。我自己也对它感兴趣,但还没有测试过(10分钟前发现的)。不过,文档似乎不错。

    对于Linux,有一个预构建的GCC交叉编译器(来自公开的苹果修改过的GCC源代码)

    2015年的更新

  • 经过这么多年,行业标准IDE现在支持OSX/iOS/Android
  • Embarcadero的RadStudio还支持在Windows上构建OSX/iOS/Android应用程序

  • 这还提供了一个交叉编译工具


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

    我创建了一个名为的项目,该项目旨在针对Linux上的OS X(10.4-10.9)

    它目前支持
    clang
    3.2到3.8(主干)(您可以使用您所在地区的
    clang
    )。
    此外,您还可以构建最新的香草
    GCC
    (4.6+)

    LTO同样适用于
    clang
    GCC

    目前正在使用cctools-870和ld64-242


    您可以从网站上租用云中的mac电脑。您可以从1美元开始雇佣他们,这应该足够了(除非您需要根访问权限,否则您需要49美元以上)。

    当3次启动需要30分钟时,您需要新的硬件;可能还有从另一个操作系统访问和编辑一个操作系统文件系统的能力。但我理解你的意思