gpt4 book ai didi

android - 为 iOS 和 Android 编译 C++ 代码 (Xcode)。这是真的吗?

转载 作者:IT老高 更新时间:2023-10-28 12:50:04 27 4
gpt4 key购买 nike

我想尝试为 iOS 和 Android 设备编写和编译 C++ 代码。我使用 Xcode 已经有一段时间了(我正在为 MacOS 和 Windows 编写 c++ 代码)。所以我想将 Xcode 用于我的目的。

问题是我不知道如何为 Android 设备和 iPad/iPhone 编译 C++ 代码。我想为 iOS 和 Android 使用跨平台解决方案,但不想使用 Marmalade (c++) 或其他框架。

是真的还是假的? :) 有教程或其他有用的 Material 吗?

最佳答案

您绝对可以在 iOS 和 Android 上使用 C++。我已经为两者编写了自己的游戏引擎。

Xcode 是 iOS 的普通 IDE,原生支持“Objective-C++”开发(编译器同时支持 Objective-CC++)。您将需要在 Objective-C 中编写一个瘦包装器来与操作系统交互,但如果您愿意,您可以在 C++ 中编写其他所有内容。如果您下载 Xcode 命令行工具,您也可以从脚本构建。

Eclipse 是适用于 Android 的常用 IDE,如果您下载 NDK您可以使用 JNI Java和C++之间的接口(interface)。与 iOS 非常相似,您至少需要一个 Java 包装器才能与操作系统交互。

但是,您不仅限于 Eclipse 和 Xcode。例如,您可以使用 emacs和/或雇用CMake允许您尝试并巩固项目设置。 Emacs 是一个非常强大和灵活的 IDE,但它的学习曲线非常陡峭,而且安装起来也不是很简单。如果您在 Mac 上执行此操作,我会推荐 emacsformacosx和安装ECBautocomplete也是。 CMake 基本上是一个跨平台构建系统,它允许您从一个源代码树构建许多不同的项目文件(Visual Studio、Xcode、Eclipse 等)。就像 emacs 一样,它非常强大,但学习曲线有点陡峭。如果您想立即加入,您可能希望同时使用 Xcode 和 Eclipse。如果您在 PC 上进行开发,则需要 Mac VM 或 Hackintosh 才能使用 Xcode 和 cygwin 才能使用 NDK for android(Macbook Pro 用户可以轻松享受乐趣)。

原生 Android 开发肯定要困难得多。您不仅要应对更多的设备 segmentation ,而且 native 调试也不是很直接。您必须在设备上运行 GDB 服务器并与其连接以设置断点,许多人从命令行执行此操作。我听说有些人使用 Tegra Tools 取得了成功如果您想要一个基于 GUI 的 IDE,则适用于 Eclipse。

我绝对建议您首先在 iOS 上进行开发,因为您可以从 IDE 中使用更强大的工具。您可以轻松跟踪内存泄漏、分析代码、设置断点;) 等。一旦您在 iOS 上开发了一项功能,您就可以与 .mk 文件和其他 Android 原生开发的优点搏斗。

以下是有关 iOS 核心对象和生命周期的一些信息:

对于 Android:

只要您能很好地使用操作系统并尊重应用程序的生命周期,您就可以自由地调用 C++ 逻辑。您可以直接使用 iOS 执行此操作,但使用 Android 您必须通过 JNI 编码调用。如果您封装平台细节,您可以在两个平台之间共享 C++ 逻辑。

我是 C++ 的忠实拥护者,但使用它的选择确实取决于这些平台的情况。 C++ 不是这些平台的流行选择,因此您不会找到那么多文档(大部分时间是您自己)。如果您对 C++ 不是很熟悉,那么复杂度可能会上升一点(您熟悉 RAIIdesign pattersSTL 吗?)。

以下是一些可能有意义的情况:

  • 如果您需要使用以 C/C++ 编写的库
  • 如果您想为您的应用或游戏构建自己的平台无关框架
  • 如果您正在使用游戏等实时/性能关键型应用程序

我并不是说您必须在这些情况下使用 C++,因为许多人都使用 Objective-C 开发游戏。我只是说,如果您需要充分利用硬件,或者您只是想要更便携的东西,这可能是需要考虑的事情。

关于android - 为 iOS 和 Android 编译 C++ 代码 (Xcode)。这是真的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15211277/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com