0

我想知道是否可以从不同的 .cu 文件调用相同的内核函数。我的意思是,我的程序有不同的类,它们都有一些共同的功能,但内存大小不同;例如:

void Bitmap8::Or(const Bitmap8 &b1, const Bitmap8 &b2);

// the function above is as same as this one (of course they are in two different files)

void Bitmap4::Or(const Bitmap4 &b1, const Bitmap4 &b2);

它们都有不同的内存大小分配。我为他们创建了一个独特的 CUDA 内核来执行操作。在我编译程序时可能会发生一些冲突吗?因为我一直有这些错误:

1>Bitmap8.cu.obj : error LNK2005: "void * __cdecl big_random_block(int)" (?big_random_block@@YAPAXH@Z) already defined in Bitmap4.cu.obj

而且有很多

先感谢您

4

2 回答 2

1

是的,可以从不同的文件中调用相同的函数。我的错误与标题的双重包含有关!问题解决了

于 2012-04-09T06:39:57.167 回答
0

您可以从不同的文件(函数)调用相同的函数。您应该有正确的参数。

例如,您可以在一个文件中 #define malloc_size 20 和在另一个文件中 #define malloc_size 20176 并且每次调用 malloc_size ,这在每个文件中都会有所不同。

我认为您应该再次查看您的代码并阐明它的作用。从简单的事情开始。

问候

于 2012-04-06T13:29:10.347 回答