Je suis en train d'appeler une fonction CUDA (hôte) à partir d'un fichier C++, compilé séparément:Appeler code CUDA à partir du code régulier C++ - le tri des extern "C"
sample.cpp
fichier C++:
extern "C" void cuda_function(int a, int b);
int main(){
//statements
cuda_function(23, 34);
//statements
}
cuda.cu
fichier:
#include <cuda.h>
__global__ void kernel(int a, int b)
{
//statements
}
void cuda_function(int a, int b){
//cuda_function
}
commandes Ancienneté:
g++ -c sample.cpp
nvcc -c cuda.cu
nvcc -o sample sample.o cuda.o
Mais cela donne erreur de liens:
sample.o: In function `main':
sample.cpp:(.text+0x163): undefined reference to `cuda_function'
collect2: ld returned 1 exit status
Qu'est-ce qui ne va pas dans cette méthode d'intégration de C++ et CUDA?
Il suffit de perdre le C externe ''. –