2011-09-15 53 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