我可以在不拥有一个的情况下为Mac编程
Can I program for Macs without owning one?
我正在使用C 和OpenGL/SDL编程,使用Visual Studio作为我的IDE。我不拥有Mac,也不对平台含糊不清。但是我想向Mac用户发布相同的内容。
我有三个问题。我可以在PC上编写和编译Mac程序吗?如果可以的话,是否有可能这样做的陷阱?最后,VS2010可以为Mac编译,还是我需要使用另一个编译器?
如果您使用的是SDL,则答案是"您可以接近您的愿望,直到最后一步,有点"。能够在单个代码库中编写类似游戏的程序,然后将该代码库带到各种机器上并进行编译并使其工作正是简单的DirectMedia库旨在做的!如果至少没有使它成为合理的目标,请非常受欢迎。
这并不意味着您将可以按下按钮并从Visual Studio中获取Macintosh或Linux二进制包装。但是您总是可以找到朋友,并要求他们在代码库上为您尝试编译。只要您一直谨慎地将功能从标准的C 库中调用并留在SDL给您的包装盒中,它应该符合良好... 在理论上。
更新2018: - 如果要在Mac上编译并且没有一个,则Travis -Ci现在具有虚拟化OS X,因此您可以运行clang并实际上将其上传由此产生的二进制文件。您可能不想每次进行更改时都在网络上等待完整的构建...但是,一旦您在OS X上获得了跨平台代码库,连续集成可以确保您以这种方式保持。<<<<<<<<<</em>
在C 中比其他语言更难,以确保您留在"可移植性沙箱"中(尤其是如果您是初学者)。而且,如果您要遵循针对Microsoft工具的教程,那么很难,因为他们对建议您在文档中进行仅使用Windows的电话有很少的疑问。因此
当然,您需要一个测试期。而且,您可能不应该等到最后一分钟才能让其他人确保基础知识在XCode或其他任何内容中进行编译。您可以通过使用GCC编译器来降低编写不可交易代码的风险,如果您开始带来实际上不是跨平台的依赖项,则更有可能抱怨。
如果您喜欢生活在边缘,也可能可以运行" hackintosh"虚拟机。您当然可以制作一个Linux VM并尝试在此下进行构建,如果它起作用,可以提高Mac构建也可以正常工作的信心。
首先,您无法跨编译Mac。您将需要他们的" GCC"。可以(理论上)在PC上创建MAC通用二进制文件,但实际上是不可能的。
vs2010不能为Mac编译,尽管如果您要使用其他语言,则可以为Mac代码(例如在Python中)。
任何跨平台语言都会有所帮助。Python,Java,Ruby,Perl
一个选项是使用Java。如果将其与Eclipse RCP SWT小部件相结合,则可以用本机LAF靶向Win/Linux/OSX。您可能想将Eclipse用作您的IDE。
如果您确实必须必须使用C ,则可以针对WXWIDGETS或其他一些跨平台窗口小部件集,但是编译确实需要所有OSX库和编译器集的副本知道如何定位平台/链接。
,如果您不想拥有任何苹果硬件,我真的会推荐Java路线……更少的痛苦。除了大量的JVM支持的语言,您甚至不必在Java中写作...尝试Scala!
- 在没有太多条件句的情况下,我如何避免被零除
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 在未初始化映射的情况下,将值插入到映射的映射中
- 是默认情况下分配给char数组常量的值
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 如何在不产生任何垃圾的情况下获得C中的像素
- 在已经使用Git的情况下减少编译时间
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- 如何在没有信号的情况下从C++执行QML插槽
- 如何在不知道向量大小的情况下输入向量内部的向量?
- 为什么在某些情况下不写入此文件?
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 在没有Xcode的情况下在Mac捆绑包中嵌入框架
- UE4-如何在给定4个屏幕坐标的情况下缩放纹理或材质
- 为什么需要复制构造函数,在哪些情况下它们非常有用
- 在C++中如何在没有pow的情况下进行基础计算
- 我可以在没有Xcode的情况下在Mac上使用带有C++的虚幻引擎吗?
- 我可以在不拥有一个的情况下为Mac编程
- 如何在给定设备实例ID的情况下可靠快速地获取网卡的MAC地址
- Mac GUI应用程序如何在不使用Sparkle的情况下重新启动自己?