c – 如何指示编译器为虚函数生成别名?

有关背景,请参阅this question.

基本上,我有一个类的以下定义

class  MyClass {
    virtual int foo4(double,int);
};

有没有办法指示编译器生成两个符合foo4的符号?也就是说,如果可执行文件要求动态链接器解析_ZN7MyClass4foo4Edi(MyClass :: foo4(double,int)的符号)和其他一些符号(比如_ZN7MyClass9reserved1Ev,MyClass :: reserved1()的符号),我想要动态链接器将解析为& MyClass :: foo4(double,int).我在Linux上使用相当现代的GCC.

最佳答案
在C中它看起来像这样:

class  MyClass {
    int foo5(double,int) __attribute__((alias("_ZN7MyClass4foo4Edi")));
    virtual int foo4(double,int);
};

int MyClass::foo4(double d,int i)
{
}

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...