編譯我的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