使用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开发人员...

关于c++ - .data.rel.ro + 0x8错误:未定义对'typeinfo for android::MediaSource'的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15338627/

10-10 16:18