c++ - 如何尽早离开 OBJ-C 的世界并在 iOS OpenGL ES 应用程序中进入现有的 C++ 代码库?

标签 c++ objective-c opengl-es

我想编写一个 iPhone 应用程序,它利用现有的 OpenGL(将移植到 ES)代码库。 我不能花太多时间来学习 OBJ-C,所以如果我能将它的使用限制在最基本的东西(输入/操作系统等...)上,那就太好了。

我知道如何将 C++ 代码包装在不透明的指针中以使这些语言可以一起使用,但我需要知道如何编译 C++ 代码(最好在 Windows 环境中)以在 X-Code 中进行链接。 (不确定这是不是正确的问题?)

链接后,我想知道离开 OBJ-C 并进入“美好而快乐”的 C++ 世界的最佳(最早)方式?

如果这没有意义,我可以完善问题...

最佳答案

在项目开发期间,您可以随时编写 C++ 代码或 Obj-C++(两种语言的混合)代码。为了让 Xcode 正确编译 C++,您需要在信息中为您的目标(或项目)设置build设置。如果您右键单击一个目标并转到“信息”,或者双击 Xcode 左侧面板中的项目并查看“构建”选项卡,您将看到一个选项“将源代码编译为” ,您需要将其设置为 Objective-C++。您还需要确保其中包含 C++ 代码的任何源文件(或包含其他 C++ 文件)都以扩展名“.mm”命名。这告诉编译器源文件中有 C++ 或 Objective-C++。

就使用 C++ 而言,除了启动应用程序和处理 AppDelegate 所需的初始 Objective-C 代码之外,您可以用 C++ 编写整个应用程序。不过,您会错过 Apple 在其框架中提供的所有代码,这可能非常有用!

关于c++ - 如何尽早离开 OBJ-C 的世界并在 iOS OpenGL ES 应用程序中进入现有的 C++ 代码库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4872626/

相关文章:

c++ - 在不控制线程的情况下同步 boost::thread 中的 STD cout 输出

ios - 单击它时更改 UITableViewCell 中按钮的图像。

ios - 周围没有任何东西的纹理

c++ - [ '(' token 之前的预期标识符或 '{' 错误]

c++ - 如何覆盖为 Boost::Python 自动创建的文档字符串数据?

c++ - 有没有办法将 boost::json::serializer 切换为美化输出?

ios - 如何将 objective-c 函数作为回调传递给 C 函数?

iphone - 将 UITableView 信息存储在单个 NSMutableArray 中

objective-c - OpenGL ES 2.0 多个网格? (只是真实世界的例子)

ios - OpenGL ES 在 iOS 12 和 SKShader 中被弃用