编译我的iOS项目的C++时,所有的收益都很好。不过,我在Android上遇到困难。Android NDK和C++ STL
我Application.mk写着:
APP_ABI := armeabi armeabi-v7a
APP_PLATFORM := android-11
APP_STL := stlport_shared
所有LOCAL_SRC_FILES定义。
当我尝试建立我的模块,我得到以下编译器错误:
jni/Game.hpp: In member function 'const std::pair<pos, Obj*>* MyEnumerator::next()':
jni/Game.hpp:126:23: error: expected type-specifier
jni/Game.hpp:126:23: error: cannot convert 'int*' to 'std::pair<pos, Obj*>*' in assignment
jni/Game.hpp:126:23: error: expected ';'
的代码上面提到的行读取:
this->ptr = new pair<pos, Obj*>::pair(it->first, it->second);
这里,ptr
是pair<pos, Obj*>*
类型和pos
的是一个结构。我宣布using std::pair;
。
任何提示什么是错的,以及要尝试什么?
错误消息是否引用C++文件和行#?如果是这样,请张贴相关代码。 – paulsm4
什么是“pos”,一个类型或对象?因为它似乎是一个对象,如果是这种情况,它将无法工作。 –
“pos”是一个结构体。但正如我所说,该项目在iOS中使用默认编译器进行编译。 – SK9