首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用G++抑制纯虚拟类的C++ vtable生成?

如何使用G++抑制纯虚拟类的C++ vtable生成?
EN

Stack Overflow用户
提问于 2011-12-04 06:17:04
回答 2查看 2.3K关注 0票数 9

可以在MSVC中使用__declspec(novtable)属性来抑制C++ vtable生成。但是,对于GNU C++编译器来说,there is no equivalent attribute似乎是不合适的。事实是,将vtable留给纯虚拟类不必要地链接到__cxa_abort()和许多其他系统中,我希望避免这种情况发生,因为我是为嵌入式系统编程的。那么,我该怎么做呢?

代码语言:javascript
运行
复制
struct ISomeInterface
{
    virtual void Func() = 0;
};

class CSomeClass : public ISomeInterface
{
    virtual void Func();
}

void CSomeClass::Func()
{
    //...
}
EN

回答 2

Stack Overflow用户

发布于 2011-12-04 06:50:11

有一些东西可以实现类似的结果:#pragma interface

但是,#pragma implementation可以覆盖这一点。

http://www.emerson.emory.edu/services/gcc/html/CPP_Interface.html

票数 3
EN

Stack Overflow用户

发布于 2013-04-24 08:33:22

编译器标志-fno-rtti停止生成运行时类型信息。

根据我在嵌入式平台上使用C++的经验,这阻止了vtable编译器错误的发生,这意味着它阻止了它们的创建(因此,虚函数将不起作用)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8371470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档