2008-10-18 201 views
29

谁使用Mac进行跨平台开发?使用Mac进行跨平台开发?

通过跨平台我基本上是说你可以编译为Windows或Unix(不一定是两者同时)。我知道这也与编写便携式代码有很大关系,但我更倾向于使用Mac OS X来开发软件。

我明白,有一系列的IDE可供选择,我可能会使用Eclipse(我喜欢GCC工具链),但Xcode似乎很受欢迎。它可以如上所述使用吗?在这种情况下,我总是可以用VirtualBoxVMware Player虚拟化,或者使用Visual Studio(或者双启动)进行虚拟化。话虽如此,我愿意接受任何其他建议的编译器(最好是使用GCC的IDE)。

此外,对于可用的Mac系列,您会推荐哪一种?我宁愿一台笔记本电脑(因为我已经有一个桌面),但我不确定合理的规格。

如果您目前正在使用Mac进行开发,我很想听听您在Mac上开发的内容以及您喜欢和不喜欢的内容。

我主要在C/C++/Java中开发。我也在尝试使用BoostQt,所以我有兴趣听到任何(潜在的)兼容性问题。

如果您有任何其他提示,我很乐意听到您要说的话。

+0

如果我今天问这样一个问题,在计算器上我可能会得到禁止。这是好日子。 – 2016-07-24 20:15:48

回答

10

嗯,使用Mac只是(折扣OSX86)实际能够在Mac + Windows + Linux上测试所有在同一硬件上的唯一方法。话虽如此,如果那是你唯一的理由,我不会走这条路。如果你在Windows环境下编程更舒适,我会说在Windows中完成你的工作,并且在侧面安装一个Mac Mini,甚至可能只是为了测试你的软件而选择便宜的Mac Mini。

+5

地狱,在Mac *上的Windows *中执行它,并节省多台机器的钱。 – eyelidlessness 2008-10-18 16:54:52

+1

除,可以运行Windows和Mac不够好,开发一台机器的需求将不仅仅是购买的Mac mini和Windows机器昂贵得多。 – Kibbee 2009-01-16 14:09:41

1

取决于你想要开发什么。如果是GUI应用程序,则可能需要在目标平台上开发和测试。对于Java相关的开发(尤其是企业级)来说,在Mac上工作是非常棒的,尤其是在Apple不久前发布了jdk1.6之后。 Eclipse和Netbeans是我在Mac和Linux上使用的IDE。

0

多年来我用Qt做跨平台开发(只是因为我喜欢它)。我鼓励你去look at it.它的事件模型(SIGNAL/SLOT)是不同的,但一旦你开始使用它并不坏。

1

我使用我的Mac进行跨平台编程。但是,我的项目相当小,很少包含GUI。

我已经设置了虚拟机来编译。至于IDE,我的经验表明,通常需要将“本机”项目文件与其他开发人员共享。因此,我主要在XCode中开发,最后在Visual Studio中创建一个项目,在Linux中创建一个Makefile。如果可能的话,我将所有项目设置为共享源文件。

Eclipse项目与Linux和OSX相当兼容,但不兼容Windows。正如其他人已经提出的那样,我会建议使用您最熟悉的IDE和OS,然后将其移植到其他平台。

根据您项目的规模,我会推荐iMac或MacBook Pro进行跨平台开发。此外,虚拟机可能相当苛刻,所以一定要获得足够的内存。

8

Eclipse在Mac上运行并得到很好的支持。例如,这是在Mac(以及所有其他平台)上为Android开发的推荐环境。 XCode是针对OS X本机开发的,你可能可以将它转换为Windows的交叉编译,但是你会非常反感。

我在XCode上做了一点小小的开发,但主要是.NET开发人员,为此我在Mac上使用VMWare。这可能听起来有些倒退,但在iMac上运行在VMWare上的Windows XP盒绝对是苍蝇(我拥有4Gb的RAM),我可以非常快速地创建和修改虚拟机以进行测试(例如:Vista,奇怪的Windows XP设置) 。最重要的是,与Windows相比,使用Mac的日常感觉就像是幸福(在15个月前,我从未使用Mac,我永远不会回到永久的Windows桌面)。

3

我肯定会给莫诺一个参观。它具有针对Qt和GTK的跨平台绑定。您还可以访问MonoDevelop,它正在突飞猛进地发展。

如果您不感兴趣,我会提到的一点是VMWare和Eclipse可以很好地协同工作。 VMWare Workstation Professional附带一个Eclipse插件,允许远程调试,并通过点击几下进行多操作系统部署测试。我肯定会推荐你获得免费试用版,看看它是否适合你。

而Mac是一个很好的平台。大多数没有从Linux移植到本地运行的东西在X11上运行良好。

4

只是为了回答推荐问题:如果您确实需要便携式设备,那么新的Macbook(低端型号)应该会成为优秀的开发机器。而且有趣的是,我曾经拥有一台Mac mini,因为这是我可以负担得起的,而且对于大多数用途来说它非常出色。我甚至在家中和办公室之间进行了操作(在办公室保留了另一台显示器/键盘/鼠标,但我现在甚至已经拥有MBP),而且非常棒。我甚至没有注意到它在我的背包里。

编辑:并没有什么能阻止你双启动或三启动你的Mac,并在Mac上完成Windows/* nix/OS X中的所有开发。

2

如果您正在寻找单一构建系统,Mac可能是您的最佳选择,因为您可以使用GCC交叉编译到Windows和Linux。

有一些编译器可以从Linux中定位到Darwin/OSX,但是你不会用这种方法获得任何Cocoa或Foundation库。至少在MinGW中,您可以访问Windows平台SDK的大部分内容。

0

Here,你会发现关于LinkedIn一个有趣的帖子被在Mac开发的100%......

4

我在一年前切换到MAC作为我的主要开发机器,再也没有回头。

我想提的一件事是,如果你在多个平台上开发,你会写出更好的软件。我不时发现,有些代码可以在特定的平台上工作,并在另一个平台上失败。大多数情况下,这是由于我的一些错误,而不是软件错误。

所以在我的书中 - 跨平台开发强化了更多的正确性。

2

另一种选择是Cocotron。它运行在Mac OS X上,包括面向Windows,Linux和Solaris的交叉编译器,与这三者兼容的Objective-C运行时和可移植Foundation框架,以及适用于Windows的AppKit框架。

0

我使用MacBook进行跨平台开发,但是我不为其他目标交叉编译。现在运行多个平台的代价是多么的低廉,这是不值得的。您既可以使用VMware等虚拟化产品,也可以使用辅助设备对Windows和Linux进行多重引导。您绝对必须在每个平台上进行全自动构建。 Joel is always right.;)

用外国用户界面疏远客户是一个很大的风险,所以我建议建立一个通用的后端和平台特定的前端。我对Qt没有任何经验,但是我已经使用Tk用于跨平台的C++应用程序。除非我拥有一个专属的企业用户,他们只能以低成本在多个平台上安装软件,否则就无法工作。

0

我用C++编写一个小的跨平台的UML编辑器,我的硕士论文的程度,和我写的大部分代码在我的Mac在Xcode:

http://remproject.org/

为了管理在Windows和Linux中构建我使用了CMake,它在每个平台上生成了Xcode,Visual Studio和Makefile项目。

http://cmake.org/

我也用两个库在里面,JUCE和POCO,前者为GUI,后者为特定功能。所有静态链接在每个平台上。

在我看来,你可以在很多方面编写跨平台的代码,这是其中之一,我很高兴,我能做到这一点非常快,我得到了我的学位:)

5

我在MacBook Pro上进行我所有的跨平台开发,主要使用REALbasic。为了在Windows和Linux上进行测试,我使用了VMware Fusion,它可以与REALbasic附带的远程调试器一起使用。

我曾经有Boot Camp与Windows设置时,我正在做.NET相关的开发。VMware和Parallels速度非常快,但本地启动操作系统不匹配。我还没有机会尝试广泛MonoDevelop在Mac OS X,但除了缺少GUI设计器,它看起来像它可能工作得很好,我可能会考虑这样做,因为我可以做任何未来的.NET项目。

我更喜欢有只是一个可以运行所有的操作系​​统,因为它是我的办公桌上更少的空间,更少的升级和管理硬件和更容易采取所有操作系统和我的一台电脑。

任何一台Mac,这些天可以处理运行Windows和Linux的不够好。你需要的最重要的东西是大量的RAM。现在的Mac可以处理至少8 GB,我建议作为一个起点(我有6 GB)。