我在使用 ndk-build 在 android 中编译 JNI 源代码时无法解决问题。导致错误的类如下:

class MxDataSource : public MediaSource 
{ 
    public: 
          MxdataSource(); 
          virtual status_t start(MetaData *params); 
          virtual status_t stop(); 
          virtual sp<MetaData> getFormat(); 
          virtual status_t read(MediaBuffer **buffer, const MediaSource::ReadOption *options)); 
          virtual ~MxDataSource(); 
          void LinkMxData(MxData* data); 
          void DelinkMxData(); 
}; 

这里,所有虚拟方法都在 MediaSource 类中纯定义。现在,当我编译它时,出现以下错误:

MxDataSource.cpp(.data.rel.ro+0x8):error: undefined reference to 'typeinfo for android::MediaSource' 
MxDataSource.cpp(.data.rel.ro+0x18):error: undefined reference to 'typeinfo for android::MediaSource' 
MxDataSource.cpp(.data.rel.ro+0x54):error: undefined reference to 'typeinfo for android::MediaSource' 

我已经通过 stackoverflow 链接查看了类似的问题,但无法解决。 任何方向将不胜感激。

谢谢。

请您参考如下方法:

您是否链接到在库中预编译的 MediaSource?看来 MediaSource 是使用 -fno-rtti 编译的,这可能就是添加 -fno-rtti 修复它的原因。 Android 是否提供 libsupc++ 运行时支持?我不是 Android 开发人员...


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!