我需要为 cuda 创建一个共享库。库的编译工作正常,但是当我尝试在我的程序中使用它时 nvcc 返回链接器或 ptxas 错误。
我将问题简化为以下代码。该库必须替换不同的 C 函数(此处:memset)。该库由三个 C++ 文件组成:
#ifndef FILEA_H_
#define FILEA_H_
namespace A {
__device__
void* memset(void* _in, int _val, int _size);
};
#endif
Run Code Online (Sandbox Code Playgroud)
#include "FileA.h"
__device__
void* A::memset(void* _in, int _val, int _size) {
char* tmp = (char*)_in;
for(int i = 0; i < _size; i++) tmp[i] = _val;
return _in;
}
Run Code Online (Sandbox Code Playgroud)
#ifndef TEMPCLASS_H_
#define TEMPCLASS_H_
#include "FileA.h"
namespace A {
template <typename T>
class TC {
public:
__device__
TC() { …
Run Code Online (Sandbox Code Playgroud)