从c++类中调用.cu文件中的内联函数

Calling inline function in .cu file from C++ class

本文关键字:函数 文件 cu c++ 调用      更新时间:2023-10-16

我试图从c++类调用内核包装器foo。我试着按照下面的建议去做:

// In CPP.h:
class cls {
    extern "C" inline void foo();
}
// In Kernels.cu:
#include "CPP.h"
extern "C" inline void cls::foo() {
    // call kernels here
}

但这没有工作-我得到一个编译器错误:

  • CPP.h: invalid storage class for a class member
  • CPP.h: "cls::foo" was referenced but not defined
  • Kernels.cu: label "cls" was declared but never referenced

怎么了?

你不应该用extern "C"来标记类方法。

使用extern "C"说明符创建一个包装器非成员函数,并让该函数调用类的方法(您还需要指定一个实例)