linking error betwwen c and cu


I am trying to use CUDA in files which are primarily written in .c format. I converted one of them where I want to write my CUDA kernels to .cu file.
The .cu file calls a function lying in one of the .c files, so I get an error while linking them.

The files—

.cu file:

#include “a.h”
extern “C”{
void somefunction(){




.c file:

#include “a.h”
void cfunction(MatriPtr Matrix){


.h file:

typedef struct … MatrixPtr

#ifdef STDC
extern “C” void somefunction();
extern void cfunction(MatrixPtr );
extern void cfunction();

error: undefined reference to “cfuction(MatriPtr )”

I read somewhere that I should have an extern “C” linkage also for cfunction().
When I try this I get the error saying " more than one instance of overloaded function “cfunction” has “C” linkage" while compiling the .cu file.

Can anyone help me here?

thnx in advance,