c++ - 在 C++ 中声明方法 extern

标签 c++ assembly linker

我已经有一些程序打算用作用汇编语言编写的 C++ 方法(具有适当的调用约定和名称修改)。然而,当我尝试使用它们时

class Foo {
    extern void foo();
}

我收到“类成员的无效存储类”。如何正确地在外部定义 C++ 方法?

一种变通方法是生成一个 thunk,定义仅调用程序集版本的方法,使用内联程序集来支持 thiscall 约定。事实上,我已经有了生成这些的代码。不过,我真的很想让这种更直接的方法发挥作用。

最佳答案

去掉 extern。默认情况下,函数在外部可见。

关于c++ - 在 C++ 中声明方法 extern,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11801211/

相关文章:

assembly - CLMUL 是常数时间吗?

c++ - 对用户定义函数的 undefined reference

c - ELF 对象文件和共享对象之间的 ELF header 有哪些区别?

c++ - Boost chrono run_timer 未定义引用

assembly - 计算 DW 数组中等于 1 的元素个数

c++ - 不再找到 DirectX 命名空间

assembly - 了解 ATT 程序集(即时)

c++ - 在C和C++中,链接器如何找到具有已实现功能的正确文件?

c++ - 如何在标准 C++ 中递归地遍历每个文件/目录?

c++:在函数中重新分配const char