这是我的第一个博客或问题。 我想用c ++为移动应用程序开发平台抽象层(PLA)。即从移动应用程序我能够与蓝牙设备通话而不用打扰底层操作系统(即IOS ANDROID等)运行。因此,我需要使用c ++代码发现运行的操作系统是运行IOS还是ANDROID,而不是调用任何操作系统的本机API。
那么,是否有人可以建议您使用c ++代码确定操作系统类型(即IOS,ANDROID)和操作系统版本的相同方法。
开发哪个IDE更适合开发c ++代码?
提前致谢.. !!
谢谢, 拉朱。
答案 0 :(得分:0)
即使你正在开发跨平台代码,当编译它的时候到来时,你需要定位一个平台。然后确定它是检查预编译器定义的问题。
大多数编译器会在编译时定义一些平台,否则,您可以在配置项目时自行完成。
例如,在分别编译iOS和Mac项目时,Xcode将定义__APPLE__
和TARGET_OS_IPHONE
以及TARGET_OS_MAC
。
对于Android,__ANDROID__
应该由工具链定义,但是我已经看到多个mk文件添加了明确的平台标志,如下所示:
LOCAL_CFLAGS := -DANDROID $(LOCAL_CFLAGS)
然后是使用预编译条件的问题:
#ifdef __APPLE__
#if TARGET_OS_IPHONE
// Configure for iPhone
#endif
#endif
#ifdef ANDROID
// Configure for Android
#endif
为了确定版本,如果不调用Native API,实际上并没有这样做。幸运的是,您可以使用模式来分解特定的实现,并在此代码前放置一个通用接口。
就IDE而言,这主要取决于选择和可用性。最流行的是Xcode for iOS和Eclipse for Android,但也可以使用其他。