2011-09-15 52 views
4

當我的Android NDK的C++本地代碼編譯,出現以下錯誤:如何使用Cygwin打開RTTI?

error: 'dynamic_cast' not permitted with -fno-rtti

有人告訴我打開RTTI,但我不知道該怎麼辦。我需要修改Application.mk還是什麼?

Application.mk

# it is needed for ndk-r5 

APP_STL := stlport_static 

APP_ABI := armeabi armeabi-v7a 

APP_MODULES := cocos2d cocosdenshion chipmunk box2d tempestkeep 

當我在一些.o文件將添加APP_CPPFLAGS += -frtti出現另一個錯誤:

undefined reference to `typeinfo for std::ios_base'

回答

2

看起來你需要刪除Application.mk -fno-rtti gcc的選項。在Application.mk中的APP_CPPFLAGS變量中查找它。

+0

你需要鏈接libstdC++,將'-lstdC++'傳遞給鏈接器命令行 – ks1322

+0

不使用'g ++'命令而不是'gcc'會自動執行嗎? –

+0

@Keith:是'g ++'自動執行此操作。這裏有兩個選項:使用'gcc'並明確傳遞'-lstdC++'或使用'g ++'和'-lstdC++'將隱式傳遞。 – ks1322