【发布时间】:2016-02-29 06:27:57
【问题描述】:
作为多平台项目(目前为止的 Android 和 iOS)的一部分,我们共享一个通用 C++ 代码库来满足数学和算法要求。
作为 Android 开发人员,我在使用同事在 iOS 项目中使用的标准库 (STL) 时遇到了几个问题。
在我的build.gradle > android.ndk 我使用:cppFlags += "-std=c++11" 和 stl = 'gnustl_shared'
例如,我不能使用原始 STL 中的 std::nth_element() 或 std::sort(),我必须包括:bits/algorithmfwd.h 或 bits/stl_algo.h。
我选择了include <bits/stl_algo.h>,到目前为止一切顺利。
问题是,我们共享这个代码库,我想知道我们是否可以使用 flags 来识别 运行平台 以便代码动态使用正确的 包括。
感谢您的帮助!
[更新 1]
正如@andreas-reiff in his answer 所注意到的,我不清楚我确实在寻找要在头文件中使用的标志,以便在编译时执行正确的包含(而不是在运行时)。
如前所述,目前的平台是 iOS 和 Android。哪些标志可以帮助我们识别这些平台?
【问题讨论】:
标签: android c++ ios stl java-native-interface