首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于c++的移动应用平台抽象层

基于c++的移动应用平台抽象层
EN

Stack Overflow用户
提问于 2014-01-15 11:30:34
回答 1查看 336关注 0票数 0

这是我的第一个博客或问题。我想开发平台抽象层(PLA)的移动应用程序使用c++。例如,从移动应用程序中,我可以与蓝牙设备对话,而不受干扰,而该设备正在运行底层操作系统(如IOS、ANDROID等)。因此,我需要发现哪个操作系统正在运行,无论是IOS还是安卓,都使用c++代码,但不调用任何操作系统的原生API。

  1. 因此,是否有人会建议你的想法,我们如何能够确定操作系统类型(即,IOS,安卓)和操作系统版本使用c++代码。
  2. 开发哪一种IDE更适合开发c++代码?

提前谢谢!

谢谢拉朱。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-15 13:35:21

即使您正在开发跨平台代码,当编译它的时候,您也需要针对一个平台。因此,确定它是一个检查预编译器定义的问题。

大多数编译器在编译时都会定义一些平台,如果不是,您可以在配置项目时自己完成。

例如,在编译__APPLE__和Mac项目时,Xcode将分别定义iOS、TARGET_OS_IPHONETARGET_OS_MAC

对于Android,__ANDROID__应该由工具链定义,但是我已经看到多个mk文件添加了明确的平台标志,如下所示:

代码语言:javascript
复制
LOCAL_CFLAGS := -DANDROID $(LOCAL_CFLAGS)

因此,这是一个使用预汇编条件的问题:

代码语言:javascript
复制
#ifdef __APPLE__
    #if TARGET_OS_IPHONE
        // Configure for iPhone
    #endif
#endif

#ifdef ANDROID
    // Configure for Android
#endif

为了确定版本,如果不调用本机API,就不可能真正做到这一点。幸运的是,您可以使用一些模式来筛选特定的实现,并在代码前面放置一个通用接口。

就IDE而言,这在很大程度上是一个选择和可用性问题。最流行的是用于iOS的Xcode和用于Android的,但也可以使用其他的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21136263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档