c++ - 我可以在没有 Mac 的情况下为 Mac 编程吗?

标签 c++ windows visual-studio-2010 macos cross-compiling

我正在使用 C++ 和 OpenGL/SDL 编写一个游戏,使用 Visual Studio 作为我的 IDE。我没有 Mac,甚至对这个平台都不熟悉。但我还是想发布给 Mac 用户。

我有三个问题。我可以在 PC 上编写和编译 Mac 程序吗?如果可以的话,这样做有什么可能的陷阱吗?最后,VS2010 可以为 Mac 编译吗,还是我需要使用其他编译器?

最佳答案

如果您正在使用 SDL,那么答案是“您可以接近您的愿望,直到最后一步,有点”。能够在单个代码库中编写类似游戏的程序,然后将该代码库带到不同的机器上进行编译并使其运行 is exactly what the Simple DirectMedia Library was designed to do! 如果它至少不能使它成为一个合理的目标,它就不会很受欢迎。

这并不意味着您将能够按一个按钮并从 Visual Studio 中获取 Macintosh 或 Linux 二进制包。但是你总是可以找到 friend ,让他们在代码库上为你尝试编译。只要您谨慎地只调用标准 C++ 库中的函数并留在 SDL 给您的框内,它应该可以正常编译...理论上

Update 2018: - If you want to compile on Mac and don't have one, Travis-CI now has virtualized OS X, so you can run clang and actually have it upload the resulting binaries somewhere. You probably don't want to wait for a full build over the network each time you make a change...but once you get a cross-platform codebase building on OS X, continuous integration can make sure you keep it that way.

在 C++ 中比在其他语言中更难确保您处于“可移植性沙箱”中(特别是如果您是初学者)。如果您正在学习专门针对 Microsoft 工具的教程,这可能会更难,因为他们毫不犹豫地建议您在其文档中进行仅限 Windows 的调用。因此,能够将“完全调试”的代码交给 friend ,第一次编译并在新平台上运行的可能性很低。

当然,您需要一段测试期。而且您可能不应该等到最后一分钟才让其他人通过在 XCode 或其他软件中编译来确保基础知识正常工作。您可以改用 GCC 编译器来降低编写不可移植代码的风险,如果您开始引入实际上不是跨平台的依赖项,这将更有可能引起提示。

也有可能运行 "Hackintosh"虚拟机,如果你喜欢生活在边缘。您当然可以制作一个 Linux VM 并尝试在其下构建,如果它有效,将提高 Mac 构建也能正常工作的信心。但不能保证。

关于c++ - 我可以在没有 Mac 的情况下为 Mac 编程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12946725/

相关文章:

c++ - 将数组中的某些整数相加

python - 是否可以使用 python 和 Windows 获得对原始设备的写访问权限?

c++ - 在 OpenCV 中自动检测和裁剪 ROI

visual-studio-2010 - 在 VS.NET 2010 中使用 "Start external program"的相对路径

windows - 与 docker 容器共享 windows 文件夹(c/Users/除外)(使用 docker windows 客户端)

.net - 在 Visual Studio 2010 中使用 .Net 2.0 Web 引用

c++ - 为什么程序不返回 YYText() 或 YYLeng()?

C++ 模板特化和 xcode

c++ - 提供可实例化类的方法作为函数指针?

c++ - 如何纠正 GDI 资源泄漏?