我在同一目录中有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 to
myPrintHelloMake()'
collect2:ld返回1退出状态
make: * [hellomake]错误1
可能是什么问题?
答案 0 :(得分:3)
您可以将文件名hellofunc.c
更改为hellofunc.cpp
。
如果无法更改文件名,您可以搜索有关如何在C ++代码中调用C函数的更多信息。
答案 1 :(得分:0)
您应该将hellofunc.c
的名称更改为hellofunc.cu
。您也可以使用#include "hellofunc.h"
。