gpt4 book ai didi

c - 有什么可以更改 GCC 中的导出名称修改方案吗?

转载 作者:太空狗 更新时间:2023-10-29 17:12:43 25 4
gpt4 key购买 nike

我正在尝试构建一个我拥有的项目,它有几个导出函数。这些函数遵循 stdcall 约定,如果使用 GCC 编译它们会被破坏

Func@X

其他编译器会像这样破坏名称:

_Func@X

有什么方法可以强制 GCC 将导出函数的名称改造成后面的示例?

最佳答案

参见 this answer .

int Func() __asm__("_Func@X");

这将强制 GCC 将符号命名为 _Func@X,而不管它通常会做什么。


哦对了,@ 很特别:它用于符号版本控制。我认为 __asm__("...@...") 曾经有效,但我想它不再有效了。

int Func() __asm__("_Func");
__asm__(".symver _Func, _Func@X");

这必须附有 version script文件,例如:

1 {
global:
_Func;
};

链接时给 gcc -Wl,--version-script=foo.version

关于c - 有什么可以更改 GCC 中的导出名称修改方案吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1703670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com