0

我在同一个目录中有 3 个文件:

hellomake.cu

#include<hellofunc.h>
 int main(){
 myPrintHelloMake();
 return 0;
}

hellofunc.c

#include<stdio.h>
#include<stdlib.h>

void myPrintHelloMake(void){
 printf("Hello dummy!\n");
 return;
}

hellofunc.h

void myPrintHelloMake(void)

生成文件

CC=/usr/local/cuda-5.5/bin/nvcc
CFLAGS=-I.

hellomake: hellomake.cu hellofunc.c
         $(CC) -o hellomake hellomake.cu hellofunc.c -I.

但是当我通过终端运行时,它会打印出来:


/usr/local/cuda-5.5/bin/nvcc -o hellomake hellomake.cu hellofunc.c -I. /tmp/tmpxft_000013bf_00000000-14_hellomake.o: 在函数main': tmpxft_000013bf_00000000-3_hellomake.cudafe1.cpp:(.text+0x5): undefined reference tomyPrintHelloMake()'collect2: ld 返回 1 退出状态 make: * [hellomake] 错误 1


可能是什么问题?

4

2 回答 2

3

您可以将文件名更改hellofunc.chellofunc.cpp.

如果文件名无法更改,您可以搜索有关如何在 C++ 代码中调用 C 函数的更多信息。

于 2013-09-26T15:48:37.390 回答
0

您应该将名称更改hellofunc.chellofunc.cu。您也可以使用#include "hellofunc.h".

于 2013-09-26T16:07:10.683 回答