.data.rel.ro+0x8 错误:未定义对"typeinfo for android::MediaSource"的引用

.data.rel.ro+0x8 error: undefined reference to 'typeinfo for android::MediaSource'

本文关键字:android for MediaSource 引用 typeinfo rel ro+0x8 错误 未定义 data      更新时间:2023-10-16

在android中使用ndk-build编译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开发者…