gpt4 book ai didi

c++ - 如何在 cuda 和 cpp 文件之间正确链接创建的函数?

转载 作者:太空宇宙 更新时间:2023-11-04 12:35:03 25 4
gpt4 key购买 nike

我正在编写一个 MATLAB .mex 库以与 c++ 和 CUDA 一起运行。在 .cu.cpp 文件中我必须写:

extern "C"void myFunction(float* variable1,float* variable2);

使用 Visual Studio 2015 编译。myFunction 的定义在 .cu 文件中,我在 .cpp 中调用它。它已经在工作,但我想更好地组织它,以便将来更容易修复某些问题。

我的问题是:有没有办法创建一个头文件来链接两个文件中的这个函数,这样我就不需要显式地写 extern "C"在他们两个?

最佳答案

我建议您创建一个头文件,例如将其命名为myFile.h,在其中放置函数声明:

void myFunction(float* variable1,float* variable2);

然后在您的 myFile.cu 中放入函数定义:

void myFunction(float* variable1,float* variable2){
std::cout << "Hi! I'm a function!" << std::endl;
}

最后,您必须在 myFile.cumyFile.cpp 中包含您的 header :

#include <cosFutStr.h>

通过这种方式,您将在 myFile.cu 中拥有函数定义,您将能够从 myFile.cpp 调用 myFunction >。正如 talonmies 在评论中所说,假设您将使用 C++ 链接编译您的源代码,那么所有内容都将以正确的方式链接,而无需使用 extern "C"。但我认为这更像是一个 C++ 问题,而不是 CUDA 问题。

关于c++ - 如何在 cuda 和 cpp 文件之间正确链接创建的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56795694/

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