如何抑制C++;使用G++;? 可在MSVC中使用C++代码>但是,似乎是GNU C++编译器。事实上,将vtables留给纯虚拟类会不必要地链接到\ucxa\u abort()和许多其他类中,我希望避免这种情况的发生,因为我正在为嵌入式系统编程。那么,我该怎么办 struct ISomeInterface { virtual void Func() = 0; }; class CSomeClass : public ISomeInterface { virtual void Func(); } void CSomeClass::Func() { //... }

如何抑制C++;使用G++;? 可在MSVC中使用C++代码>但是,似乎是GNU C++编译器。事实上,将vtables留给纯虚拟类会不必要地链接到\ucxa\u abort()和许多其他类中,我希望避免这种情况的发生,因为我正在为嵌入式系统编程。那么,我该怎么办 struct ISomeInterface { virtual void Func() = 0; }; class CSomeClass : public ISomeInterface { virtual void Func(); } void CSomeClass::Func() { //... },c++,gcc,g++,virtual-functions,vtable,C++,Gcc,G++,Virtual Functions,Vtable,有一种方法可以实现类似的结果:#pragma接口 但是,#pragma实现可以覆盖此功能。 编译器标志-fno rtti停止运行时类型信息生成 在我在嵌入式平台上使用C++的经验,这防止了VTABLE编译器错误的发生,表明它阻止了它们的创建(并且虚拟函数不起作用)。

有一种方法可以实现类似的结果:
#pragma接口

但是,
#pragma实现
可以覆盖此功能。

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

在我在嵌入式平台上使用C++的经验,这防止了VTABLE编译器错误的发生,表明它阻止了它们的创建(并且虚拟函数不起作用)。